일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 우테코
- clearAutomatically
- 스프링부트배포
- Mock
- 검색api
- 자바 롬복
- 우아한테크코스 블랙잭
- NonUniqueResultException
- SpringDataJPA
- 레벨인터뷰
- 벌크연산
- 밤랩
- bomblab
- 우아한테크코스5기
- unique result
- 스프링 롬복
- @Param
- @Query
- docker에 ubuntu
- 우아한테크코스
- ubuntu이미지
- Argos
- ubuntu
- BDDMockito
- jpa
- 회고
- 영속성컨텍스트
- 배포스크립트
- @Modifying
- 우분투
- Today
- Total
목록SpringDataJPA (3)
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에서는 쿼리문에 문법 오류가 있으면 컴파일 타임에 에러를 잡아주지를 못한다. 따라서 런타임 시에 에러가 발생할 수 있는데 이는 치명적이다. 사용자가 특정..
java.lang.IllegalArgumentException: Parameter value [\] did not match expected type [java.lang.String (n/a)] 위와같은 오류가 검색 api에 발생했다. 이상하게도 첫번째 한번은 검색 api가 정상적으로 작동하는데 두번째 호출부터는 위와 같은 에러를 표출하면서 작동이 되지 않았다. 이유를 찾아보니 깃허브 spring-data-jpa 이슈 탭에서 발견할 수 있는 오류였다. https://github.com/spring-projects/spring-data-jpa/issues/2479 public interface FoodRepository extends JpaRepository { List findAllByFoodNameCo..