繁体   English   中英

如何编写查询参数为列表的JPARepository查询?

[英]How to write JPARepository query where a query parameter is a list?

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

List<User> findByLastname(String lastname);

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

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

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

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

一个人如何在创建一个方法JPARepository通过的可能性列表查询?

你用

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

这里更多。 (表4,第5至最后一行)

创建一个要用作查询参数的姓氏数组。 然后尝试以下方法:findAllInLastName(List lastNames); 扩展JpaRepository类时,只要遵循创建查询方法名称的正确格式,Spring数据就会自动搜索合适的查询方法。 希望这对您有所帮助。 并尝试阅读Spring Data在线文档。 干杯哥!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM