调用 Hibernate 会话刷新

Posted

技术标签:

【中文标题】调用 Hibernate 会话刷新【英文标题】:Calling Hibernate session flush 【发布时间】:2012-11-21 23:13:37 【问题描述】:

我存储一个实体,然后我需要执行原生查询(通过doWork完成),并且为了成功执行代表实体的查询记录[s]必须存在于数据库中(更准确地说,它必须在同一个事务中可用),所以我想在这种情况下调用flush 是有效的......

我被hibernate documentation 说的flush弄糊涂了

必须在工作单元结束时,在提交事务和关闭会话之前调用

较新版本的http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html_single/#d5e976 有在循环中调用flush 的示例。

是否可以在提交之前调用flush?如果没有,还有什么办法?

谢谢。

【问题讨论】:

【参考方案1】:

可以随时冲水。请参阅documentation。

【讨论】:

以上是关于调用 Hibernate 会话刷新的主要内容,如果未能解决你的问题,请参考以下文章

Hibernater入门笔记

hibernater-validator jar包冲突的问题

您如何测试 Spring @Transactional 而不只是命中休眠级别 1 缓存或进行手动会话刷新?

请说说你对Hibernat的理解?JDBC和Hibernate各有什么优势和劣势?

休眠:flush()和commit()

Hibernat 原生SQL运行结果集处理方法