테스트 코드 작성 중 아래와 같은 오류 발생"No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call"클래스에 @Transact
Jpa에서 createdDate, updatedDate, creator 등의 정보를 저장하도록 BaseEntity를 만드는 중, 임베디드 타입을 사용하는건 어떤지 생각해봤고 어떤 차이가 있는지 알아봤다.ref - https://www.inflearn.com/q
Spring Data JPA에서 제공하는 save() 함수는 어떻게 구현되어 있고 어떻게 동작하는지 정리해보려고한다.SimpleJpaRepository.save()코드를 보면 저장하려는 엔티티가 새로운 엔티티인지 아닌지 확인해서 persist를 하거나 merge를 한다
Spring의 JPA 사용 중 데이터가 존재하는지 확인하는 방법으로 count 함수를 사용할 때가 있다.단순히 하나의 데이터가 존재하는지 확인하는 경우(아이디 중복확인 등) count 함수를 사용하면 성능상에 문제가 발생할 수 있다.성능에 실제로 문제가 발생하는지 알고
Spring Data Jpa에서 페이징을 위한 쿼리를 작성했는데 이 쿼리에서는 fetch join이 사용된다.fetch join이 들어간 경우에는 CountQuery를 정상적으로 자동으로 만들어주지 못한다.아마 그래서 발생하는 문제인 것같다.@Query 어노테이션에는
단순히 데이터가 존재하는지 안하는지 확인하는 경우 exists를 활용하는 것이 좋다.그 이유는 전에 포스팅한 글에 잘 나와있다.이번에 프로젝트를 진행하면서 Spring Data JPA를 적극 사용해보기로 하면서 기존에 JPQL의 setMaxResults를 이용해 exi
DB의 필요한 속성만을 조회하는 것을 projection이라고 한다.Spring Data JPA에서 projection을 하는 방법을 알아보자.아래와 같이 원하는 데이터를 Select하고 그에 맞는 자료형으로 반환을 받으면 될것 같았지만 작동하지 않았다. 별도의 방법이