오늘 좀 시간을 보낸 문제
- 기존 jpa의 sql이 복작도가 증가함에 따라 nativeQuery를 사용하게 됨.
- IN 절을 기존과 같이 o.enumTypes in :enumTypes 를 그대로 사용해서 @Param으로 넘김
이때 @Param의 List는 enum클래스임 List<EnumType>
- 일반 jpql이였을 경우는 결과가 잘나옴.
- 그러나 nativeQuery로 변경 후에는 결과가 나오지 않음. 에러 없음.
- 원인은 nativeQuery사용시에는 IN절에 들어가는 Param List에는 String, Long 과 같은 타입만 허용됨.
....
and fvd.vendorDivisionType in :vendorDivisionTypes
...
- 수정전
List<Faq> findByXXXXXX(@Param("vendorDivisionTypes") List<VendorDivisionType> vendorDivisionTypes);
- 수정후
List<Faq> findByXXXXXX(@Param("vendorDivisionTypes") List<String> vendorDivisionTypes);