2010-07-09 2 views
1
  1. Как вы обрабатываете сессию Hibernate в бизнес-слое?
  2. Вы связываете свой бизнес-уровень с родным Hibernate API? (например, использовать session.load() в UserService.java)
  3. Любой шаблон дизайна для бизнеса Слой? Лучшие практики?

Я использую hibernate-core 3.5.3-Final, Spring MVC 3.0.3.RELEASE.Как вы обрабатываете сеанс Hibernate в бизнес-слое?

ответ

3

Я не обрабатываю Session в бизнес-слое, поэтому я не привязываю его к собственному API-интерфейсу Hibernate. Я обрабатываю сеанс в слое DAO (используя template-less DAOs). Я использую бизнес-уровень для управления транзакциями и демаркации.

1

Нежелательно распространять сеанс Hibernate в бизнес-слое. Сессия Hibernate должна быть инкапсулирована на вашем уровне доступа к данным (DAO). Бизнес-уровень должен быть реализован только с точки зрения объектов домена (загруженных спящим) без каких-либо знаний о спящем режиме. Если вы делаете свой бизнес-уровень транзакционным (используя транзакции Spring), ваш бизнес-уровень может без проблем получить доступ ко всем лениво загруженным полям в ваших спящих объектах домена (так как сеанс Hibernate будет открыт во время транзакции Spring).

Смежные вопросы