Skip to main content Link Search Menu Expand Document (external link)

@Scheduled 사용 시 @Transactional 메소드 사용으로 인한 에러

Reason

before.png

Unexpected error occurred in scheduled task

에러 발생

Solution

after.png

after_1.png

참고자료1

참고자료2

@Scheduled 와 @Transactional 어노테이션을 분리해야한다.

해결방법이 2가지가 있다.

1) @Scheduled을 가진 클래스가 참조하는 메서드의 @Transactional을 지우는 방법이 있다.

하지만 JPA에서 값 변경은 트랜잭션 내에서 이루어져야하기 때문에 삭제하는건 좋은 방법이 아니라고 생각해 다른 방법을 찾았다.

2) @Scheduled 클래스에서 @Transactional을 가진 repository와 분리