Hibernate Noob - получить частичный объект - PullRequest
1 голос
/ 27 января 2011

Привет!

У меня есть следующий класс, и иногда мне нужно получить только элементы title и subTitle:

public class Article implements Serializable {

    private static final long serialVersionUID;
    private int id;
    private String title;
    private String subTitle;
    private String body;
    ....
}

Каков наилучший способ облегчить это?Я думал о том, чтобы сделать заголовок и субтитры изолированными объектами, но, честно говоря, пока не знаю, что делаю.

Я могу позволить себе роскошь изменить всю статью, но спросить первым - это самая разумная вещь для меня на данный момент.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 27 января 2011

При условии, что это для цели отображения, вы также можете положиться на ResultTransformer.

См. Этот SO ответ , который имеет дело с аналогичной проблемой и ограничивает найденные свойства.

1 голос
/ 27 января 2011

Я думаю, что вы можете решить эту проблему, создав специальный класс для хранения необходимой информации, а затем импортируйте ее в свое отображение. См. 5.1.19.import в руководстве. Я полагаю, что вы можете использовать импортированный класс в вашем HQL, например:

"select new Titles(a.title, a.subTitle) from Article a where a.id = :id"

Вот сообщение в блоге, которое я нашел на эту тему: http://gustavoringel.blogspot.com/2009/02/creating-dto-in-nhibernate-hql-using.html.

Удачи!

1 голос
/ 27 января 2011

Вы можете аннотировать каждое простое свойство с помощью LAZY -> точно так же, как @Basic (fetch = FetchType.LAZY)

Таким образом, оно будет загружено, только если вам нужно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...