본문 바로가기

Spring Data JPA3

Spring Data JPA - 쿼리 메서드(3) 7. 벌크성 수정 처리 벌크 업데이트란 단건 UPDATE, DELETE가 아닌 다건의 UPDATE, DELETE 연산을 하나의 쿼리로 하는 것을 말한다. // Bulk Update @Modifying(clearAutomatically = true) @Query("update Member m set m.age = m.age + 1 where m.age >= :age") int bulkAgePlus(@Param("age") int age); 벌크성 수정 쿼리 사용시 주의점 JPA에서 벌크 연산성 조심해야할 게 있다. JPA라는것은 영속성 컨텍스트에서 Entity들이 flush()를 통해서 DB에 반영이 되는건데 벌크연산은 영속성 컨테이너를 안거치고 직접 DB에 update 연산을 해버린다. 그래서 영속성 컨.. 2023. 4. 13.
Spring Data JPA - 쿼리 메서드(2) 5. 반환타입 JPA는 유연환 반환 타입을 지원한다. //컬렉션 -> 데이터가 없으면 빈 컬렉션 List findByUsername(String name); //단건 -> 데이터가 없으면 null Member findByUsername(String name); //단건 -> Optional 처리 Optional findByUsername(String name); - Member findByUsername(String name); 에서 반환값이 2개라면 예외발생 -> norrectResultSizeDataAccessException - JPA Exception은 스프링 Exception으로 변환된다. JPA를 사용하는 클라이언트 입장에서 동일하게 Exception 처리를 할 수 있다. - 반환 타입은 굉장.. 2023. 4. 13.
Spring Data JPA - 쿼리 메서드(1) 1. 메소드 이름으로 쿼리 생성 Distinct findDistinctByLastnameAndFirstname select distinct …​ where x.lastname = ?1 and x.firstname = ?2 And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname = ?2 Or findByLastnameOrFirstname … where x.lastname = ?1 or x.firstname = ?2 Is, Equals findByFirstname,findByFirstnameIs,findByFirstnameEquals … where x.firstname = ?1 Between findByStartDateBetween … .. 2023. 4. 12.