Spring Data JPA5 [스프링 데이터 JPA] 6. Auditing Auditing 엔티티를 생성, 변경할때 변경한 사람과 시간을 알고 싶으면 스프링 데이터 jpa는 이를 손쉽게 알려준다. 등록일 수정일 등록자 수정자 스프링 부트 설정 클래스 package study.datajpa; import ...; @EnableJpaAuditing @SpringBootApplication public class DataJpaApplication { public static void main(String[] args) { SpringApplication.run(DataJpaApplication.class, args); } @SpringBootApplication 이 있는 클래스에 @EnableJpaAuditing 을 적용해줘야한다. 그리고 나서 사용하는 어노테이션은 @CreatedD.. 2020. 12. 21. [스프링 데이터 JPA] 5. EntityGraph EntityGraph 스프링데이터 JPA에서는 페치 조인 2가지 방법을 이용할 수 있다. @Query 를 이용한 페치 조인과 EntityGraph 를 사용하는 것이다. JPQL 페치 조인 @Query("select m from Member m join fetch m.team t") List findMemberFetchJoin(); EntityGraph 스프링 데이터 JPA 인터페이스를 오버라이드해서 사용 @Override @EntityGraph(attributePaths = {"team"}) List findAll(); JPQL + 엔티티 그래프 @EntityGraph(attributePaths = {"team"}) @Query("select m from Member m") List findMemberE.. 2020. 12. 17. [스프링 데이터 JPA] 4. 벌크성 수정 쿼리 벌크성 수정 쿼리 JPA에서는 영속성 컨텍스트를 거쳐서 DB로 쿼리가 flush 되고 커밋된다. 그러나 벌크성 수정쿼리는 다르다. 벌크성 수정 쿼리는 영속성 컨텍스트를 거치지 않고 곧바로 DB로 update 쿼리가 날라간다. JPA를 사용한 벌크성 수정 쿼리 public int bulkAgePlus(int age) { int resultCount = em.createQuery("update Member m set m.age = m.age + 1 where m.age >= :age") .setParameter("age", age) .executeUpdate(); return resultCount; } 스프링 데이터 JPA에서의 벌크성 수정 쿼리 @Modifying @Query("update Member m.. 2020. 12. 17. [스프링 데이터 JPA] 3. 페이징과 정렬 3. 페이징과 정렬 순수 JPA 페이징과 정렬 JPA 페이징 리포지토리 public List findByPage(int age, int offset, int limit) { return em.createQuery("select m from Member m where m.age = :age order by m.username desc ", Member.class) .setParameter("age", age) .setFirstResult(offset) .setMaxResults(limit) .getResultList(); } public Long totalCount(int age) { return em.createQuery("select count(m) from Member m where m.age = :.. 2020. 12. 17. 이전 1 2 다음