java - 使用自定义类 Spring Boot Java 的 @Query 注解

标签 java sql spring spring-boot spring-data-jpa

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/

相关文章:

java - 在数组列表中搜索字符串并打印该字符串

php - php 中不同的 if 语句

php - 如何确保删除查询删除一行?

spring - neo4j和 Elasticsearch 在同一spring boot项目中(冲突lucene版本)

xml - Spring Servlet-Context.xml 报错Cannot locate BeanDefinitionParser for element [import]

java - 我的无效字符在哪里 (ORA-00911)

Java - 关闭 ServerSocketChannel

SQL 用逗号替换点

java - 未通过身份验证时显示登录对话框

java - 无法登录 Google Play 游戏服务 : Must have a game ID to sign in