Я думаю, что то, что вы спрашиваете, невозможно (без беспорядочных действий) с API Criteria: ни один из методов в API не возвращает коллекцию (которая была бы картой в вашем случае), они только возвращают списки.1001 *
Итак, вы могли бы написать свой собственный ResultTransformer, который бы возвращал одноэлементный список, первым и единственным элементом которого будет ваша карта ... но это было бы немного грязно, по моему мнению.что-то вроде этого:
public class MyResultTransformer implements ResultTransformer {
public Object transformTuple(Object[] tuple, String[] aliases) {
return tuple;
}
public List transformList(List collection) {
Map result = new LinkedHashMap(); // to preserve order
// build the map from the collection
...
return Collections.singletonList(result);
}
}
, чтобы получить кортежи только с двумя элементами (Color и count), используйте метод Criteria.setProjection ().