所以我有一个ID列表
div
当我将该列表传递给List<Integer> ids = [1,1,1,5];
时,
而不是返回4个实体,它只返回2,ID为1.5。
有没有办法改变findAll()所以它不会删除重复项?
答案 0 :(得分:3)
我认为不可能:SELECT * FROM foo WHERE id in (1, 1, 1, 5)
也会返回2行,而不是4行。不是为您创建克隆对象的存储库作业。如果您需要克隆实体,只需创建一个clone method/copy constructor。
答案 1 :(得分:0)
您可以在findAll完成后重建此列表,这是代码:
List<Integer> ids = [1,1,1,5];
List<Foo> fooList = fooDao.findAll(ids); // Only two objects
List<Foo> newFooList = new ArrayList<>();
for (Integer id : ids) {
Foo f; // Find the object from the origin list using `CollectionUtils` etc.
newFooList.add(f);
}