티스토리 뷰
트러블슈팅
Parameter value [\] did not match expected type [java.lang.String (n/a)] 버그 일시적 해결 방법
기억용블로그 2022. 5. 24. 18:18728x90
검색 결과에 따라서 리스트를 반환해주는 기능을 구현하다가 위와 같은 버그를 만났다.
맨 처음 결과값은 잘 나오는데 그 두번째부터 값이 출력되지 않고 저 버그만 출력됨
원인
https://stackoverflow.com/questions/71642208/parameter-value-gabrek-did-not-match-expected-type-java-lang-character-n-a
하이버네이트 구현체에 의한 버그로 5.6.6과 5.6.7 그 이상에서 발생하는 버그라고 한다.
원인은 캐싱에 의한 문제일거라 사람들은 예상하던데 본인의 하이버네이트 버전은 5.6.8로 아직 안 고쳐진걸로 보아 문제가 오래 갈 수도 있을 것같다
public interface ItemRepository extends JpaRepository<Item, Long> {
Optional<List<Item>> findByNameContaining(String name);
}
본인의 코드는 위와 같다.
@Repository
public interface MyEntityRepository extends JpaRepository<MyEntity, Long> {
List<MyEntity> findByNameStartsWith(String namePrefix);
}
이는 똑같은 버그가 발생하는 다른 사람의 코드인데
LIKE 쿼리를 날리는 모든 경우에서 생기지 않을까 생각
해결 방법
public interface ItemRepository extends JpaRepository<Item, Long> {
Optional<List<Item>> findByNameContaining(@Param("q") String name);
}
일시적인 해결 방법은 매우 간단했다.
Controller에서 받을 파라미터를 문제가 생긴 메서드에 명시적으로 작성해넣으면 끝
만약 본인처럼 간단한 경우가 아니라면 5.6.5 이하로 내리면 해결된다고 한다.
출처
https://github.com/spring-projects/spring-data-jpa/issues/2472
https://github.com/spring-projects/spring-data-jpa/issues/2479
'트러블슈팅' 카테고리의 다른 글
젠킨스 SSH로 sh를 실행할때 경로에 주의하자 (0) | 2022.07.04 |
---|---|
@Embeddable을 사용할때 NullPointerException을 방지하는 방법 (0) | 2022.06.04 |
The dependencies of some of the beans in the application context form a cycle: 에러 발생 해결 방법 (0) | 2022.06.02 |
Cannot call sendRedirect() after the response has been committed 해결 방법 (0) | 2022.05.19 |
http://localhost:8080/null로 redirect되는 문제 해결 방법(임시) (0) | 2022.05.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- IDE
- JavaScript
- neovim
- ModelAttribute
- 루나빔
- RequestParam
- vim
- RequestBody
- lunarvim
- RequestPart
- 아키텍처
- Dap
- 도커
- 레디스
- 배포
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함