
@EntityGraph? 연관관계를 맺은 엔티티들을 SQL 한번에 조회 fetch join과 매우 유사하다고 생각 연관된 엔티티를 한번에 조회하는 다양한 방법 가정 Member와 Team은 N:1 양방향 연관관계를 가짐 member1은 team1, member2는 team2, member3은 team3, member4는 team4 member, team 지연로딩 설정 List members = memberRepository.findAll(); for (Member member : members) { System.out.println("member.teamClass = " + member.getTeam().getClass()); System.out.println("member.team = " + membe..

순수 JPA 사용 조건에 맞는 엔티티들의 값을 일괄 수정하고 싶다면 벌크 연산을 사용하면 된다 public List bulkAgePlus(int age) { return em.createQuery("update Member m set m.age = m.age + 1 where m.age >= : age", Member.class) .setParameter("age", age) .getResultList(); } public List bulkAgePlus(int age) { return em.createQuery("update Member m set m.age = m.age + 1 where m.age >= : age") .setParameter("age", age) .getResultList(); } 위..

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 = :age", Long.class) .setParameter("..

쿼리 메서드란 repository interface에 선언되는 DB에서 정보를 찾는 메서드 spring data JPA가 제공하는 쿼리 메서드 기능 메서드 이름으로 쿼리 생성 메서드 이름으로 JPA NamedQuery 호출 @Query 어노테이션을 사용하여 repository interface에 쿼리 직접 정의 메서드 이름으로 쿼리 생성 spring data jpa를 사용하지 않는다면 작성해야할 JPQL public List findByUsernameAndAge(String username, int age) { return em.createQuery( "select m from Member m" + " where m.username = :username" + " and m.age = :age", Memb..