我们如何使用 Hibernate 按照提供给 Hibernate 查询的 Pks 列表的顺序加载多个实体?
在下面的代码中,列表输出的顺序是升序,而不是参数中提供 Pks 的顺序
Criteria criteria = s.createCriteria(entityClass).add(Restrictions.in(idPropertyName, pks));
List list = criteria.list();
最佳答案
您获取它们,然后使用比较器对它们进行排序,比较器比较列表中每个实体的索引。
例如:
Map<Long, Integer> indexById = new HashMap<>();
for (int i = 0; i < pks.size(); i++) {
indexById.put(pks.get(i), i);
}
List<MyEntity> entities = seachByIds(pks);
entities.sort(Comparator.comparing(entity -> indexById.get(entity.getId())));
关于java - 如何按标识符或主键的顺序加载多个 Hibernate 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36516249/