你如何看待一个好的Spring + Hibernate DAO模块设计?

时间:2010-03-15 14:44:37

标签: java nhibernate hibernate spring

首先,我们创建代表db实体的类,ok,done。 假设我们使用Hibernate会话工厂和JPA注释。

现在我们必须创建一个DAO:getUserById,getAllUsers()等。

您对交易管理,会话工厂,如何设计好的设计有什么建议?

1 个答案:

答案 0 :(得分:7)

  1. 使DAO成为通用的。请参阅Don't repeat the DAO文章。
  2. 交易管理应由春季管理。使用JpaTransactionManager。事务可以用两种方式标记,它们应该标记服务类的方法,而不是DAO:
    • 在每个交易方法上使用@Transactional(与<tx:annotation-driven />中的applicationContext.xml结合使用)
    • 使用<tx:advice>和相应的<aop:config>
  3. 使用OpenEntityManagerInViewFilterOpenEntityManagerInViewInterceptor以避免LazyInitializationException
  4. Read this了解详情。