Skip to content
This repository was archived by the owner on Nov 23, 2021. It is now read-only.

Commit 12d830b

Browse files
AbstractGenericDao.findAll(Iterable<ID>) unusable FIX #621
1 parent e226c5a commit 12d830b

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

modules/jpa/src/main/java/io/oasp/module/jpa/dataaccess/base/AbstractGenericDao.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.oasp.module.jpa.dataaccess.base;
22

3+
import java.util.ArrayList;
4+
import java.util.Collection;
35
import java.util.List;
46

57
import javax.persistence.EntityManager;
@@ -10,6 +12,7 @@
1012
import javax.persistence.TypedQuery;
1113
import javax.persistence.criteria.CriteriaBuilder;
1214
import javax.persistence.criteria.CriteriaQuery;
15+
import javax.persistence.criteria.Predicate;
1316
import javax.persistence.criteria.Root;
1417

1518
import net.sf.mmm.util.entity.api.PersistenceEntity;
@@ -171,13 +174,26 @@ public List<E> findAll(Iterable<ID> ids) {
171174
CriteriaQuery<E> query = builder.createQuery(getEntityClass());
172175
Root<E> root = query.from(getEntityClass());
173176
query.select(root);
174-
query.where(root.get("id").in(ids));
177+
query.where(root.get("id").in(toCollection(ids)));
175178
TypedQuery<E> typedQuery = getEntityManager().createQuery(query);
176179
List<E> resultList = typedQuery.getResultList();
177180
LOG.debug("Query for selection of {} objects returned {} hit(s).", getEntityName(), resultList.size());
178181
return resultList;
179182
}
180183

184+
/**
185+
* @param ids sequence of id
186+
* @return a collection of these ids to use {@link Predicate#in(Collection)} for instance
187+
*/
188+
protected Collection<ID> toCollection(Iterable<ID> ids) {
189+
190+
final Collection<ID> idsList = new ArrayList<>();
191+
for (final ID id : ids) {
192+
idsList.add(id);
193+
}
194+
return idsList;
195+
}
196+
181197
@Override
182198
public void delete(ID id) {
183199

0 commit comments

Comments
 (0)