Каким вы видите хороший дизайн модуля Spring + Hibernate DAO? - PullRequest
1 голос
/ 15 марта 2010

Сначала мы создаем классы, которые представляют сущности БД, хорошо, готово. Допустим, мы используем фабрику сессий Hibernate и аннотации JPA.

Теперь мы должны создать DAO: getUserById, getAllUsers () и т. Д.

Что вы посоветуете по поводу управления транзакциями, фабрики сессий, как сделать хороший дизайн?

1 Ответ

7 голосов
/ 15 марта 2010
  1. Сделать DAO универсальным. См. Не повторяйте статью DAO .
  2. Управление транзакциями должно осуществляться пружинно. Используйте JpaTransactionManager. Транзакции могут быть помечены двумя способами, и они должны маркировать методы классов обслуживания, а не DAO:
    • с использованием @Transactional для каждого транзакционного метода (в сочетании с <tx:annotation-driven /> в applicationContext.xml)
    • с использованием <tx:advice> и соответствующих <aop:config>
  3. Используйте OpenEntityManagerInViewFilter или OpenEntityManagerInViewInterceptor, чтобы избежать LazyInitializationException

Прочтите это для более подробной информации.

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