java - 如何编写查询参数是列表的 JPARepository 查询?

标签 java spring jpa spring-data

Spring Data 的 JPARepository 的文档提供了如下示例

List<User> findByLastname(String lastname);

for 和 SpringData 将完成生成正确查询的所有工作,并返回正确的用户。

但是假设我想要获得 50 个用户,并且我有他们的姓氏列表。我不想调用上面的方法50次。我想将 JPA 称为

select *
from user
where last_name in ('N0', 'N1', 'N2'... 'N49');

现在查看documentation我看到了一些可能性,例如命名查询和规范。命名查询似乎需要在 Java 注释中指定 SQL。示例中与 findAll 方法一起使用的规范具有 ishasMoreThan 类型方法,但我没有看到任何会变成 查询中。还有Javadocs对于规范没有任何示例用法。

如何在 JPARepository 中创建一个方法来通过可能性列表进行查询?

最佳答案

您使用

List<User> findByLastnameIn(Collection<String> lastnames);

更多 here 。 (表4,倒数第5行)

关于java - 如何编写查询参数是列表的 JPARepository 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36075315/

相关文章:

java - 为什么我不能 getImage()?

java - 如何测试复杂对象图的相等性?

Java/Android 无法解释的编译错误 : is not abstract and does not override abstract method onTabReselected(Tab, FragmentTransaction) in TabListener

java - 使用破折号将 Post 参数映射到 Spring Controller 中的模型

java - 仅重定向 HTML 页面一次

java - 在 AWS Fargate 中监控 JVM

java - 使用 JPA 创建对象并将其保存到表中,但将表名称作为参数

java - 每次 Java 更新时,web start jar 验证都会变慢

java - 将 JPA 与 Hibernate 实现一起使用 : entityManager. 删除 - 不工作

java - 使用 JPA 和 Spring 进行集成测试