본문 바로가기

spring2

[Spring] self-invocation 01.들어가기 전self-invocation 즉, 자기호출 트랜잭션 관련 설정에서 발생할 수 있는 문제인데용항상... 프로젝트를 하면서 느끼지만 잘 모르고 쓰는것들이 많고 그 안을 파고들어야 더 깊이 공부할 수 있는 것 같아요그리고 그걸 남겨야 ^^..... 머리속에 오래 남더라구요? 그래서 이번에는 self-invocation이 발생할 수 있는 상황을 만들어보고, 테스트 하는 과정을 살펴보자 그전에 먼저 인터페이스를 만들고 간단한 예제를 만들어보자public interface Business { void ready(); void go();}@Slf4jpublic class SimpleBusiness implements Business { @Override public void re.. 2024. 11. 23.
[Spring] JPA save(), saveAll(), deleteAll(), deleteAllInBatch(), @Query 비교 01. 들어가기전프로젝트를 하면서, 엔티티의 갯수가 많아지고, 여러 부분을 저장하거나 삭제하는 로직을 구현하는데!이때 여러 jpa 쿼리메소드가 성능차이가 나는건 알고있었지만, 이유를 정확하게 몰랐다! 까보면서 알아보쟈 !02.save()03.saveAll()둘다 @Transactional 적용되어있음save(): 1건 마다 save()함수 호출saveAll(): 1건 마다 인스턴스 내부의 save()함수 호출→ saveAll()이 성능이 더 좋은데, 이유가 뭐냐?@TransactionalAOP 프록시 기반으로 외부 Bean 객체가 있고, 이 객체의 함수를 호출해 Intercept가 되어 트랜잭션으로 묶이게 됨Bean 객체 내부에서 내부함수 호출 시 @Transcational 적용Xsave() 호출 시,상.. 2024. 11. 10.