MelRanG
729
2021-09-29 20:03:49
0
104

h2에선 실행되는데 jpa에선 null값이 반환됩니다.


FavoritePerfume테이블에 id, userId, perfumeName이 있고 이 향수를 선호하는 유저들이 좋아하는 향수를 얻으려고합니다.

유저는 user30부터 user30이고 향수는 aa0부터 aa30까지 각 향수당 유저2명씩 삽입해놨습니다.


h2에서 돌린 쿼리는 정상적으로 값이 추출됩니다. jpa에서는 != 대신 <>를 사용한다고 해서 h2에서도 <>를 사용했습니다.

SELECT perfume_name FROM FAVORITE_PERFUME where user_id IN (select user_id from favorite_perfume where perfume_name = 'aa1') and perfume_name <> 'aa1' Group by perfume_name Order by count(perfume_name)


하지만 JPA로 값을 돌리면 null값이 리턴됩니다.

@Query("SELECT perfumeName FROM FavoritePerfume where userId IN (select userId from FavoritePerfume where perfumeName = :perfumeName) and perfumeName <> :perfumeName group by perfumeName order by count(perfumeName)")
List<String> findByFavoriteUserLikePerfume(@Param(value="perfumeName") String perfumeName);


h2와 jpa에 있는 <>를 =로 바꾸면 값이 같은데 <>는 값이 다른데 뭐가 문제인건가요??


0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.