我有ID数组类型。例)长id = [1、3、5] 那么如何找到使用数组类型id的数据呢?
数组数据类型不适用于findById()方法。 所以我尝试了循环功能。 但是这种风格对性能不好,因为它会多次执行该方法以获取id的长度。
Long id = [1, 3, 5];
for (int i = 0; i < id.length; i++) {
repository.findById(id[i]);
}
板桌
id |标题|内容
=============================
1 | A ... |是...
2 | B ... | B是...
3 | C ... | C是...
4 | D ... | D是...
5 | E ... | E是...
我希望在查询下面使用JPA方法(非本机查询样式)获得相同的结果。
选择 标题, 内容 来自董事会 id = 1或id = 3或id = 5的地方;
结果
id |标题|内容
=============================
1 | A ... |是...
3 | C ... | C是...
5 | E ... | E是...
答案 0 :(得分:1)
您可以使用方法findByIdIn(List<Long> ids)
。这是用于获取数据的Spring数据JPA方法。
您的方法应为
List<Board> findByIdIn(List<Long> ids)
在BaordRepository
答案 1 :(得分:1)
如果您使用CrudRepository
,则可以使用方法findAllById(Iterable<ID> ids)
查找一些数据
String[] ids = new String[]{"1","2","3"};
Iterable<T> result = repository.findById(Arrays.asList(ids))