Как я могу расширить свой контекст постоянства в веб-модуль с помощью Hibernate и JSF? - PullRequest
0 голосов
/ 28 июля 2011

Я работаю над веб-приложением с ejb3 и jsf. Я хочу манипулировать объектами jpa в моих управляемых компонентах jsf. Обычно, когда я использую свои сущности в моих управляемых bean-компонентах, я получаю LazyInitializationExceptions, потому что они отсоединяются при входе в веб-контейнер.

Есть ли лучшая практика, как решить эту проблему?

Я знаю, что могу использовать шаблон OpenSessionInView, поэтому у меня открытая сессия гибернации в JSF. Означает ли это, что я могу просто использовать myEntitiy.setSomething (...), и он будет сохранен в базе данных?

Привет, Laures

Ответы [ 2 ]

1 голос
/ 28 июля 2011

при использовании OpenSessionInView; вызов «myEntitiy.setSomething (...)» изменит только значение в этом сеансе. Вы все еще должны сохранять объект, когда хотите сохранить его для дальнейшего использования.

Я предпочитаю создавать «бизнес-слой», где транзакции начинаются и внутри этого бизнес-уровня обрабатывают все операции jpa. Таким образом, каждый бизнес-метод находится в пределах своей собственной транзакции и предоставляет указанную услугу для вышеприведенного уровня графического интерфейса.

0 голосов
/ 28 июля 2011

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

Одна из главных причин, по которой я переключился на шов, заключалась в следующем.

...