Проекции для коллекций и вложенные проекции - PullRequest
1 голос
/ 07 мая 2010

Первая часть - КАК ПРОЕКТИРОВАНИЕ КОЛЛЕКЦИЙ?

Можем ли мы применить проекции к элементам коллекции?Например,

    class User{
    private address List<Address>;
}

class Address{
    private String city;
    private String state;
}

Теперь я могу просто загрузить атрибут адреса класса User?Используя такой код:

criteria.setProjection(Projections.property("Address"));

Но он всегда возвращает мне значение NULL, даже если объекту задано поле адреса.Есть ли другой способ проецирования коллекционных предметов?

ВТОРАЯ ЧАСТЬ: ВСТРОЕННЫЕ ПРОЕКТЫ.Рассмотрим ту же модель, что показана выше, но вместо набора адресов используется один элемент.Теперь, что, если я хочу просто загрузить атрибут "city" Address, который является частью класса User ??

Я попытался сделать:

Projections.property("Address.City")

Но это дает мне ошибку, заявляяне удалось разрешить свойство: "Address.City" пользователя.

Существует ли какое-либо положение для элементов коллекции Projecting и вложенных проекций ??

1 Ответ

1 голос
/ 07 мая 2010

Hibernate чувствителен к регистру. поэтому вместо A ddress. C ity используйте a ddress. c ity. Если это не работает, попробуйте использовать псевдоним, например:

DetachedCriteria criteria = DetachedCriteria.forClass(User.class);
criteria.createAlias("address", "addAlias");
criteria.setProjection(Projections.property("addAlias.city"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...