【问题标题】:JPA persistence.xml flushmode with Hibernate 3.0使用 Hibernate 3.0 的 JPA persistence.xml 刷新模式
【发布时间】:2012-08-27 11:02:08
【问题描述】:

我了解 Hibernate 默认使用透明写入来提交事务。

但是,我希望我的实体管理器在事务提交后立即在数据库上提交我的事务。无论如何我可以在 JPA 的 persistence.xml 中配置它吗?

【问题讨论】:

  • 我认为您不理解“事务性写入背后”的含义。这并不意味着 Hibernate 延迟提交事务。这意味着 Hibernate 将执行 INSERTS、UPDATES 和 DELETES 延迟到稍后的时间点(通常是事务提交)。这个执行 INSERTS、UPDATES 和 DELETES 的过程称为刷新。那么你真的想强制 Hibernate 不要延迟刷新吗?

标签: java hibernate jpa


【解决方案1】:

Hibernate 在提交事务时必须在数据库中提交。您还可以发现有两个附加选项很有帮助:

  • 定义会话并自动提交(在连接的属性中输入属性“hibernate.connection.autocommit”)

  • 在事务中间强制休眠事务与数据库事务同步(通过session.flush())

问候,

【讨论】:

  • 感谢您的回复。我想在没有 session.flush() 的情况下这样做,因为它需要在所有地方完成。我尝试了第一种方法,它似乎不起作用
  • 如我所说,奇怪的是默认不工作,你也可以强制FlushMode会话如下“session.setFlushMode(FlushMode.ALWAYS)”如果有效我建议你考虑是否"FlushMode.COMMIT" 够了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-04
  • 1970-01-01
  • 1970-01-01
  • 2015-08-08
  • 2017-11-20
  • 2011-11-22
  • 1970-01-01
相关资源
最近更新 更多