Есть ли чистый способ заставить Hibernate работать с ленивой инициализацией в Swing? - PullRequest
1 голос
/ 27 мая 2011

Вот описание того, что я хочу сделать в приложении Swing.

Итак, представьте, у меня есть объект Client, у которого внутри есть несколько коллекций. При запуске приложения я хочу загрузить только объект Client и отобразить его основные атрибуты (например, имя, возраст и т. Д.) В таблице. Позже, когда пользователь захочет, я хочу загрузить полный Клиент (коллекции).

Когда я пытался использовать Hibernate для отложенной загрузки Клиента, у меня возникали некоторые проблемы из-за попытки загрузить эти объекты вне исходного сеанса, который загружал Клиента.

Я искал в интернете простой / понятный способ сделать это, но в итоге я сделал хак, которым я не очень горжусь: По сути, я произвел рефакторинг основных атрибутов клиента и создал класс ClientDetails. В клиенте у меня теперь есть ClientDetails. Таким образом, при запуске я загружаю только ClientDetails, а затем при необходимости загружаю Client, который снова загружает ClientDetails. Это заставит меня обновить ссылку на исходный ClientDetails, который был загружен в первый раз (это грязно).

Итак, мой вопрос, есть ли лучший / более чистый способ сделать это с помощью отложенной загрузки?

Надеюсь, это не слишком смущает :)

Спасибо!

1 Ответ

4 голосов
/ 27 мая 2011

Вы должны загрузить объект Client, закрыть Session, который его загрузил, а затем, когда вы хотите отобразить коллекцию, открыть еще один Session и , повторно присоединить объект Client кэто.

...