когда использовать Criteria.ALIAS_TO_ENTITY_MAP в спящем режиме? - PullRequest
4 голосов
/ 18 января 2012

Я новичок в спящем режиме. Я прочитал строку ниже.

Criteria.ALIAS_TO_ENTITY_MAP

Пожалуйста, помогите мне, когда использовать Criteria.ALIAS_TO_ENTITY_MAP.

Спасибо!

1 Ответ

10 голосов
/ 18 января 2012

Они обычно используются с трансформаторами набора результатов в спящем режиме.Прочитайте API или посмотрите пример . ResultTransformer - это приятный и простой интерфейс, который позволяет преобразовывать любой элемент результата Criteria.

Например, вы можетесделать любой результат Criteria возвращенным в виде java.util.Map или в виде Бина, не являющегося объектом.

Вы можете прочитать пример для ALIAS_TO_ENTITY_MAP здесь .Таким образом,

Коллекции котят, содержащиеся в экземплярах Cat, возвращенных двумя предыдущими запросами, предварительно не фильтруются по критериям.Если вы хотите получить только котят, которые соответствуют критериям, вы должны использовать ResultTransformer.

List cats = sess.createCriteria(Cat.class)
    .createCriteria("kittens", "kt")
        .add( Restrictions.eq("name", "F%") )
    .setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)
    .list();
Iterator iter = cats.iterator();
while ( iter.hasNext() ) {
    Map map = (Map) iter.next();
    Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);
    Cat kitten = (Cat) map.get("kt");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...