Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java session.save()是否立即插入?_Java_Hibernate - Fatal编程技术网

Java session.save()是否立即插入?

Java session.save()是否立即插入?,java,hibernate,Java,Hibernate,…还是等待关联事务提交 我在循环中使用HQL查询,如下所示: tx.begin() for(...) { session.getNamedQuery(...).list() ... session.save(new MyEntity()) } tx.commit() 命名查询需要能够查看随save调用添加的实体。这样行吗?试试看,如果不行,再打电话 session.flush() 将SQL发送到数据库。无论如何,直到调用 tx.commit() 这取决于会话的刷新模

…还是等待关联事务提交

我在循环中使用HQL查询,如下所示:

tx.begin()
for(...)
{
    session.getNamedQuery(...).list()
    ...
    session.save(new MyEntity())
}
tx.commit()

命名查询需要能够查看随save调用添加的实体。这样行吗?

试试看,如果不行,再打电话

session.flush()
将SQL发送到数据库。无论如何,直到调用

tx.commit()

这取决于会话的刷新模式。 您还可以使用
session.flush()

刷新模式可以通过多种方式设置—
session.setFlushMode(..)
entityManager.setFlushMode(..)
,或者通过xml配置(
org.hibernate.FlushMode

默认值为
AUTO

有时会在执行查询之前刷新会话,以确保查询永远不会返回过时状态。这是默认的刷新模式


到目前为止,最容易找到答案的方法是尝试一下它是否有效。