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

Eug*_*neP 1 java nhibernate spring hibernate

首先,我们创建表示数据库实体的类,确定,完成.假设我们使用Hibernate会话工厂和JPA注释.

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

您对交易管理,会话工厂,如何制作出良好的设计有何建议?

Boz*_*zho 7

  1. 使DAO通用.请参阅不要重复DAO文章.
  2. 交易管理应该是春季管理的.用一个JpaTransactionManager.事务可以用两种方式标记,它们应该标记服务类的方法,而不是DAO:
    • 使用@Transactional在每个事务方法(与组合<tx:annotation-driven />applicationContext.xml)
    • 使用<tx:advice>和适当的<aop:config>
  3. 使用OpenEntityManagerInViewFilterOpenEntityManagerInViewInterceptor以避免LazyInitializationException

阅读本文了解更多详情.