일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 우테코
- NonUniqueResultException
- 스프링부트배포
- 스프링 롬복
- ubuntu이미지
- 벌크연산
- @Modifying
- @Param
- @Query
- bomblab
- BDDMockito
- 레벨인터뷰
- 우아한테크코스
- 우아한테크코스5기
- 우분투
- 영속성컨텍스트
- Argos
- 배포스크립트
- Mock
- 검색api
- unique result
- jpa
- 우아한테크코스 블랙잭
- docker에 ubuntu
- 자바 롬복
- 밤랩
- ubuntu
- 회고
- clearAutomatically
- SpringDataJPA
- Today
- Total
목록Spring/JPA (2)
Jeomxon's Tech Note
spring-data-jpa에서 벌크연산을 처리할 때 주의해야할 사항은 꼭 알아둬야할 것 같아서 포스팅을 한다. @Modifying @Query("update Member m set m.age = m.age + 1 where m.age >= :age") int bulkAgePlus(@Param("age") int age); 위 코드에서 파라미터로 들어온 age보다 크거나 같은 age에 대해서는 1을 더하여 update쿼리를 날려주는 것을 알 수 있다. 첫번째 주의사항은 @Modifying을 써줘야한다는 것이다. @Modifying을 쓰지 않으니깐 이런 경고문이 뜬다. update 혹은 delete쿼리를 보낼 때는 반드시 필요한 어노테이션임을 알 수 있다. 두번째 주의사항은 벌크연산 후 영속성 컨텍스트를 ..
spring-data-jpa에서는 @Query 어노테이션을 통해 JPQL을 사용할 수 있도록 기능을 제공한다. @Query("select m from Member m where m.username = :username and m.age = :age") List findUser(@Param("username") String username, @Param("age") int age); 이런 식으로 사용할 수 있다. 여기서 얼핏보면 @Query에 있는 string으로 이루어진 쿼리문이 JPQL처럼 단순 스트링쿼리라고 생각이 들었는데 다른 점이 있었다. JPQL에서는 쿼리문에 문법 오류가 있으면 컴파일 타임에 에러를 잡아주지를 못한다. 따라서 런타임 시에 에러가 발생할 수 있는데 이는 치명적이다. 사용자가 특정..