Backend

Read-Only 함수에 @Transactional 을 붙여야 하는가?

!쪼렙조햄 2022. 9. 13. 13:08
반응형

스프링부트 + JPA 를 쓰다보면
@Transactional 어노테이션을 자주 사용하게 된다

어떠한 로직이 동작하면서
DB 값도 바꿔야 하는 상황일때

해당 로직이 실패하면 
DB까지 모두 롤백시킬 심산으로
@Transactional 어노테이션을 활용하고는 했다

그런데 어느날
내가 Transactional 어노테이션을 남용하고 있는건 아닐까..?

@Transactional(readOnly = true)

어차피 읽기만 할건데..
롤백 될일도 없는데..
이 코드가 과연 맞나..? 싶은 의문이 든다..

두둥

알고보니 Spring JPA repository base class 가
애초에 모든 메소드들을 read-only transaction 으로 생각한다고 한다

저 코드는 필요 없는것!

JPA Buddy

그리고 JPA 최적화 관련해서
글들을 보던중
JPA Buddy 라는 intelliJ에서 쓸 수 있는
플러그인을 알게 되었다

아직 제대로 활용은 못해봤지만
entity 클래스도 자동으로 생성해주고

각  entity 에 연결된 repository 도 알아서 잘 보여준다..! 
싱기방기

어려운 JPA의 세계

 

JPA 관련 책 추천받습니다

반응형