영속성 컨텍스트(entityManager) 영속성 컨텍스트는 데이터를 대신 관리해주는 JPA의 기능이라고 볼 수 있을 것 같습니다. 객체가 관리대상(영속상태)이 된다면 트랜잭션이 끝나고 insert나 update같은 기능을 대신 처리하게 해줍니다. //객체를 생성한 상태(비영속) Member member = new Member(); member.setId("member1"); member.setUsername("회원1"); 위 상태처럼 그냥 객체(member)를 생성하고 어떤 처리도 되지 않은 상태를 비영속이라 합니다. 여기서 영속 상태를 만들어주기 위해서는 아래와 같이 하면 됩니다. EntityManager em = emf.createEntityManager(); em.getTransaction().b..
@Query Spring Data JPA에서는 기본적으로 JpaRepository를 통해서 제공되는 findById 같은 메서드도 있고 메서드 네이밍만을 통해서 쿼리를 실행할 수 있도록 기능을 제공, 하지만 이 방법만으로 만들 수 없는 쿼리가 있다면 쿼리를 직접 작성해야하며 그 때 커스텀 Repository의 메서드에 붙이는 어노테이션이 @Query입니다. 기본적으로 JPQL로 작성할 수 있고, nativeQuery=true 옵션으로 네이티브 쿼리도 사용 가능합니다. @Modifying @Query로 작성된 변경, 삭제 쿼리 메서드를 사용할 때 필요합니다. 주로 벌크 연산 시 사용됩니다. JPA Entity LifeCycle을 무시하고 쿼리가 실행되기 때문에 해당 어노테이션을 사용할 때는 영속성 콘텍스트..