2010-07-09 99 views
1
  1. 如何处理业务层中的休眠会话 ?
  2. 您是否将您的业务层绑定到原生Hibernate API的 ? (例如,在UserService.java中使用 session.load())
  3. 业务的任何设计模式 Layer?最佳实践?

我正在使用hibernate-core 3.5.3-Final,Spring MVC 3.0.3.RELEASE。如何处理业务层中的Hibernate会话?

回答

3

我不处理业务层中的Session,所以我没有将它与原生Hibernate API绑定。我在DAO层处理会话(使用template-less DAOs)。我使用业务层进行事务控制和分界。

1

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