일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 벌크연산
- 우아한테크코스5기
- jpa
- @Param
- @Modifying
- 스프링 롬복
- 자바 롬복
- ubuntu이미지
- 스프링부트배포
- Argos
- Mock
- 우아한테크코스 블랙잭
- ubuntu
- BDDMockito
- 영속성컨텍스트
- 우분투
- 배포스크립트
- 레벨인터뷰
- docker에 ubuntu
- 밤랩
- 우테코
- SpringDataJPA
- bomblab
- 우아한테크코스
- 회고
- NonUniqueResultException
- @Query
- clearAutomatically
- unique result
- 검색api
- Today
- Total
목록Spring/Archive (4)
Jeomxon's Tech Note
문제 상황 팀 프로젝트를 진행하면서 OAuth를 이용한 회원가입 및 로그인 기능을 맡게 되었다. 거의 구현 막바지 무렵 자잘한 에러들을 고치고 있었는데, 개발서버에서는 발생하지 않았던 것으로 기억했는데 로컬에서 띄운 서버에서는 알 수 없는 에러로그가 찍히고 있었다. 토큰이 올바르지 않다고..? 토큰을 보낸 적이 없는데 이런 예외 메시지와 함께 에러로그가 찍히는 걸 확인할 수 있었다. 에러가 발생한 위치는 알았지만, 어느 시점에 해당 에러가 발생했는지 알기 위해서 위치를 파악해야했다. 일단 해당 로그로 확인할 수 있었던 사실은 filter에서 에러가 발생했기 때문에 요청의 시작 시점에 예외가 발생 해당 로그 이전에 회원 조회 쿼리문이 함께 나간 것을 확인했기에 두번째 요청에서 발생 그러면 결과적으로 내가 ..
javax.persistence.NonUniqueResultException: query did not return a unique result: 2 서비스 단에서 개발하고 테스트를 직접하던 도중 발생한 에러이다. 현재 db에는 값이 두개 이상이 있고, 동일한 조건으로 find를 통해서 조회를 하려고하면 발생하는 오류이다. 따라서 service단에서 사용한 find관련 메소드에서 이상이 없는지 먼저 확인하면 빠르게 해결할 수 있다. 에러에 대해서 풀어보자면 unique result, 즉 하나의 유일한 결과에 대해서 return하여 받아야하는데 2개 이상이 db에 들어있기 때문에 발생했던 것이었다.
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..
엔티티 클래스에서 사용하는 id(자동으로 증가되는 등의 시퀀스), 즉 들어가는 id에 대해서 Long타입으로 쓰는 이유가 뭘까? 처음에는 그냥 int타입을 쓰면 되지 않나?하고 생각했는데 전혀 아니었다. Wrapper Type인 Long을 쓰는 이유, 그것도 Integer가 아닌 굳이 Long을 쓰는 이유는 뭘까? 일단 int가 아니라 long을 쓰는 이유는 허용 범위가 더 크다는 점에서 추측을 할 수 있다. 하지만 왜 Wrapper Type을 사용하는지가 궁금했다. 일단 primitive Type에서는 기본 값이 0인데, 0이라는것이 실제로 id에 부여된 값이 0인지 아니면 값이 없다는 뜻인지 구분하기 어렵다. 하지만 Wrapper Type을 쓴다면 값이 없을 때는 null로 표시가 되기 때문에 pri..