【问题标题】:Hibernate : how to configure the Flush after every RW-D operation?Hibernate:如何在每次 RW-D 操作后配置 Flush?
【发布时间】:2010-01-20 14:11:31
【问题描述】:

我的数据库的每个 Dao 都实现了一个 AbstractDao。

公共抽象类 AbstractDaoImpl 扩展 HibernateDaoSupport {

(...) public void delete(T pEntity) 抛出 FerdeDaoException {

    try {
        this.getHibernateTemplate().delete(pEntity);
    } (...)
}

....

基本上,flushMode 似乎是 AUTO。

我想要什么?

我想确保在单元测试中使用这个类时,我想在上面的这个类的每个基本操作(删除、更新、保存)之后进行刷新

什么是解决方案?

我想我必须在该行之后添加: 上述方法中的this.getHibernateTemplate().delete(pEntity)

这个: this.getHibernateTemplate().flush() 仅用于我的单元测试。

但我不能直接将它添加到 AsbtractDao 中,因为它用于其他项目中会自动完成刷新。

或者我没有什么可添加的,因为每次 DELETE/SAVE/UPDATE 操作后自动刷新模式刷新? (我没有在 javadoc 中阅读过)。

提前感谢您的回答。

【问题讨论】:

    标签: hibernate


    【解决方案1】:

    不错的一个:)

    为什么不指定系统变量,它指定应用程序的操作模式。例如:

    -DrunningMode=测试 -DrunningMode=发展 -DrunningMode=生产

    并且根据您的 runningMode 系统变量,您可以决定在 AbstractDAO 中做什么,或者您可以将测试的 AUTO flush 属性设置为 true,将非测试环境设置为 false,并在不同环境下运行时使用不同的配置模式。

    如果您在不同的项目中使用这个类,最好用一个配置文件来支持它,该配置文件将指导这个类如何工作。 (XML 或 .properties)

    【讨论】:

      猜你喜欢
      • 2014-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      • 2013-06-26
      • 2011-11-20
      相关资源
      最近更新 更多