반응형
스프링부트 + 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 관련 책 추천받습니다
반응형
'Backend' 카테고리의 다른 글
유저 닉네임 검색 속도 개선 - Postgresql 문자열 검색 빨리하기 (0) | 2024.01.17 |
---|---|
서버 2대중 1대만 특정 태스크를 (알람) 하도록 하는 법 (0) | 2022.09.14 |
nginx 버전이 노출되어 있으면 위험할 수 있다구? (0) | 2021.12.27 |
java 의 로깅 이란 (JCL, SLF4J, log4j, logback) (0) | 2021.12.13 |
spring boot 에서 etag 설정하기 (0) | 2021.11.29 |