我有一个包含List
@Query("SELECT lecture.lectureFileNames FROM Lecture lecture WHERE lecture.id = :lectureId")
List<String> getLectureFiles(@Param("lectureId") Long id);
问题是Hibernate抛出一个异常:
Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryException: not an entity [SELECT lecture.lectureFileNames FROM x.y.z.model.Lecture lecture WHERE lecture.id = :lectureId]
我知道我可以使用@Query提取字段的值,但现在我不知道为什么这不起作用。
你必须加入集合:
@Query("SELECT f FROM Lecture lecture JOIN lecture.lectureFileNames f WHERE lecture.id = :lectureId")
List<String> getLectureFiles(@Param("lectureId") Long id);
有一种方法可以检索查询的元素。使用界面的投影。看看这个链接https://www.baeldung.com/spring-data-jpa-projections