2016-04-09 5 views
0

休止状態のクエリに提供されるPksのリストの順番でhibernateを使用してエンティティをロードするにはどうすればよいですか?以下のコードで は、リスト出力の順番ではなく、PKSは、引数に供給される順番あなたがそれらを得る複数の休止状態のエンティティをpksの順にロードする方法

Criteria criteria = s.createCriteria(entityClass).add(Restrictions.in(idPropertyName, pks)); 

List list = criteria.list(); 

答えて

0

、その後の指標を比較するコンパレータを使用してそれらを並べ替えるよりも、昇順でありますリスト内の各エンティティ。例えば

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()))); 
関連する問題