【问题标题】:How do you see a good Spring+Hibernate DAO module design?你如何看待一个好的 Spring+Hibernate DAO 模块设计?
【发布时间】:2010-03-15 14:44:36
【问题描述】:

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

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

您对事务管理、会话工厂、如何做出好的设计有什么建议?

【问题讨论】:

标签: java spring hibernate


【解决方案1】:
  1. 使 DAO 通用。请参阅Don't repeat the DAO 文章。
  2. 事务管理应由弹簧管理。使用JpaTransactionManager。事务可以用两种方式标记,它们应该标记服务类的方法,而不是 DAO:
    • 在每个事务方法上使用@Transactional(结合applicationContext.xml中的<tx:annotation-driven />
    • 使用<tx:advice> 和适当的<aop:config>
  3. 使用OpenEntityManagerInViewFilterOpenEntityManagerInViewInterceptor 以避免LazyInitializationException

Read this了解更多详情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 2011-03-24
    • 2015-03-05
    • 1970-01-01
    • 2011-01-27
    • 2010-12-07
    • 1970-01-01
    相关资源
    最近更新 更多