JPA 用户的问题,以下内容是否可能?
@Query(value = "SELECT * FROM Users u WHERE u.status = :sampleClass.status",
nativeQuery = true)
List<SampleClass> findBySampleClass(SampleClass sampleClass);
请注意我尝试访问 SampleClass
的方式在 @Query
注解。无法继续下去,而是选择了 Criteria 并构建了我的老式查询。
最佳答案
= 和 : 之间不应有任何空格,因此请将查询更改为下面的一个。
SELECT * FROM Users u WHERE u.status =: sampleClass.status
另外,正如你的方法名称findBySampleClass
,你试图根据SampleClass进行查找,那么为什么只传递SampleClass的一个参数而不是对象??
参见this为了更清楚。
您也可以通过像 ?1
这样的索引参数来使用,如下所示。
@Query(value = "select id,name,roll_no from USER_INFO_TEST where rollNo = ?1", nativeQuery = true)
ArrayList<IUserProjection> findUserUsingRollNo(String rollNo);
引用:引自 Spring Data JPA reference docs .
另请参阅this section关于如何使用命名的 native 查询来完成此操作。
关于java - 使用自定义类 Spring Boot Java 的 @Query 注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53374883/