通过使用条件,这应该不成问题。
CriteriaBuilder queryBuilder = em.getCriteriaBuilder();
CriteriaQuery query = queryBuilder.createQuery();
Root<Demo> demo = query.from(Demo.class);
Iterator it = map.entrySet().iterator();
Map.Entry wherePair = (Map.Entry)it.next(); // This is retrieved for creating the where clause
query.where(wherePair.getKey() + "=" + wherePair.getValue());
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
query.and(" " + pairs.getKey() + "=" + pairs.getValue());
}
我不能保证它会编译,但这就是想法。