Модули, демонстрирующие функциональность через EJB.Как справиться с отложенной загрузкой Hibernate между модулями? - PullRequest
1 голос
/ 19 февраля 2012

Допустим, приложение разбито на модули, каждый из которых предоставляет функциональность через EJB. Если модуль A вызывает метод EJB в модуле B, который возвращает объект, полученный через Hibernate, то модуль A не сможет вызвать метод отложенной загрузки этого объекта, поскольку сеанса больше нет. Как справиться с такой ситуацией?

Ответы [ 2 ]

1 голос
/ 19 февраля 2012

Нет альтернативы, кроме полной гидратации объекта перед его возвратом из системы B. Hibernate не охватывает JVM, и вы этого не хотите. Если объект слишком велик, вы можете ввести два (или столько же) вызовов, чтобы вернуть сводку и подробности.

0 голосов
/ 04 апреля 2012

Я принял это окончательное решение. Еще не пробовал, но думаю, что это сработает. Проблема была

Если модуль A вызывает метод EJB в модуле B, который возвращает объект, полученный через Hibernate, то модуль A не сможет вызвать метод отложенной загрузки этого объекта, поскольку сеанса больше нет. *

Таким образом, чтобы преодолеть это, модуль B вернет только первичный ключ объекта, а модуль A получит объект через Hibernate. Таким образом, модуль A сможет вызывать лениво загруженные методы объекта.

...