사용자 도구

사이트 도구


springframework:transaction:transactional_event_listener

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
springframework:transaction:transactional_event_listener [2023/09/19 14:25]
kwon37xi [주의 사항]
springframework:transaction:transactional_event_listener [2024/04/30 15:00] (현재)
kwon37xi [주의 사항]
줄 15: 줄 15:
   * **이벤트를 publish 했더라도 트랜잭션이 없으면 아무것도 실행 안 된다.**   * **이벤트를 publish 했더라도 트랜잭션이 없으면 아무것도 실행 안 된다.**
     * 이때 ''fallbackExecution=true'' 로 지정하면 트랜잭션이 아예 없는 상황에서도 실행은 된다.     * 이때 ''fallbackExecution=true'' 로 지정하면 트랜잭션이 아예 없는 상황에서도 실행은 된다.
-  * ''AFTER_COMMIT'' phase 에서 JPA Entity에 수정을 가해봐야 반영이 안 된다. 이미 커밋한 상태이고 트랜잭션자체는 기존 것을 유지하고 있다. 기존 JPA Entity 뿐만 아니라 신규 트랜잭션도 실행되지 않는다.+  * **''AFTER_COMMIT'' phase 에서 JPA Entity에 수정을 가해봐야 반영이 안 된다.** 이미 커밋한 상태이고 트랜잭션자체는 기존 것을 유지하고 있다. 기존 JPA Entity 뿐만 아니라 신규 트랜잭션도 실행되지 않는다.
   * ''@Async''를 걸지 않으면 이벤트 처리를 마칠 때 까지 DB 커넥션을 놓치 않게 된다. 따라서 ''@Async'' 로 빨리 응답을 주고 기존 DB 커넥션도 반환하는게 보통을 더 좋을 것으로 보인다.   * ''@Async''를 걸지 않으면 이벤트 처리를 마칠 때 까지 DB 커넥션을 놓치 않게 된다. 따라서 ''@Async'' 로 빨리 응답을 주고 기존 DB 커넥션도 반환하는게 보통을 더 좋을 것으로 보인다.
   * ''BEFORE_COMMIT'' phase 에서 뭔가를 할 때는 ''@Async''를 사용하지 말 것.   * ''BEFORE_COMMIT'' phase 에서 뭔가를 할 때는 ''@Async''를 사용하지 말 것.
springframework/transaction/transactional_event_listener.txt · 마지막으로 수정됨: 2024/04/30 15:00 저자 kwon37xi