如何处理业务层中的Hibernate会话?

时间:2010-07-09 07:05:40

标签: java hibernate design-patterns spring

  1. 你如何处理Hibernate Session 在业务层?
  2. 您是否将业务层绑定到 原生Hibernate API? (例如使用 UserService.java中的session.load())
  3. 任何商业设计模式 层?最佳实践?
  4. 我正在使用hibernate-core 3.5.3-Final,Spring MVC 3.0.3.RELEASE。

2 个答案:

答案 0 :(得分:3)

我不处理业务层中的Session,因此我不将它与原生Hibernate API联系起来。我在DAO层处理会话(使用template-less DAOs)。我使用业务层进行事务控制和分界。

答案 1 :(得分:1)

不希望将Hibernate的Session传播到业务层。 Hibernate Session应该封装在您的数据访问层(DAO)中。 业务层应该只在域对象(由hibernate加载)方面实现,而不需要任何hibernate知识。 如果你的业务层是事务性的(使用Spring事务),那么你的业务层可以访问你的休眠域对象中所有延迟加载的字段而没有任何问题(因为Hibernate的会话将在Spring事务期间打开)。