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 使用persist()和save()休眠长时间运行的对话_Java_Hibernate - Fatal编程技术网

Java 使用persist()和save()休眠长时间运行的对话

Java 使用persist()和save()休眠长时间运行的对话,java,hibernate,Java,Hibernate,与save()相比,persist()对于与Session/Persistence context persist() 这在与扩展用户的长时间对话中很有用 会话/持久性上下文 保存() 这在与扩展用户的长时间对话中是有问题的 会话/持久性上下文 1) 当它说持久性上下文时意味着什么 2) 你能提供一个关于什么是长时间对话的例子吗?这是否适用于web应用程序 谢谢 更新: 让我清楚地理解了我的第一个查询-持久性上下文如下: 在运行时,无论何时打开和关闭会话,在这些打开的会话之间 而封闭边界Hibe

save()
相比,
persist()
对于与
Session/Persistence context

persist()

这在与扩展用户的长时间对话中很有用 会话/持久性上下文

保存()

这在与扩展用户的长时间对话中是有问题的 会话/持久性上下文

1) 当它说
持久性上下文
时意味着什么

2) 你能提供一个关于什么是长时间对话的例子吗?这是否适用于web应用程序

谢谢

更新: 让我清楚地理解了我的第一个查询-
持久性上下文
如下:

在运行时,无论何时打开和关闭会话,在这些打开的会话之间 而封闭边界Hibernate将对象保持在持久状态 上下文将其视为休眠的第一级运行时缓存 控制。Hibernate执行自动脏检查和事务性检查 在持久性上下文中管理的实体的后置写。冬眠 在此缓存中保证Java对象标识的作用域。只有一个 中存在表示特定数据库行的对象实例 缓存


对话是最终用户为了执行业务任务而与UI的交互。这种交互通常会跨越许多
UI操作

Hibernate管理与Hibernate
会话关联的
持久性上下文中的实体。有两种模式用于集成Hibernate后端和UI前端:

每个会话会话会话:当用户开始会话时,将创建一个休眠会话,并保持活动状态,直到用户中止或完成会话。当后者发生时,事务开始,会话被刷新并关闭,从而向数据库发送SQL,事务被提交/回滚

每个请求的会话(UI操作):当用户执行UI操作时,将创建休眠会话。对于事务开始的每个UI操作,涉及此操作的代码都会运行,会话可能会被刷新和关闭,事务会被提交/回滚。如果适用,开发人员负责重新连接先前在新会话中管理的分离实体

第一种模式看起来可能更吸引人,但在实践中,特别是当涉及web应用程序时,第二种模式更受欢迎,因为除非UI非常简单,否则它更容易实现。您可能希望了解如何使用servlet过滤器实现视图中的
打开会话
模式(每个请求会话模式的另一个名称),或者查找所选web应用程序框架的文档,了解它如何支持此模式


另一件需要注意的事情是如何执行对话隔离(类似于数据库上事务隔离的概念)。这涉及两个用户同时处理相同数据的可能性,可能会覆盖彼此的更改。查看带有时间戳或版本的乐观锁定。

对话是最终用户为了执行业务任务而与UI的交互。这种交互通常会跨越许多
UI操作

Hibernate管理与Hibernate
会话关联的
持久性上下文中的实体。有两种模式用于集成Hibernate后端和UI前端:

每个会话会话会话:当用户开始会话时,将创建一个休眠会话,并保持活动状态,直到用户中止或完成会话。当后者发生时,事务开始,会话被刷新并关闭,从而向数据库发送SQL,事务被提交/回滚

每个请求的会话(UI操作):当用户执行UI操作时,将创建休眠会话。对于事务开始的每个UI操作,涉及此操作的代码都会运行,会话可能会被刷新和关闭,事务会被提交/回滚。如果适用,开发人员负责重新连接先前在新会话中管理的分离实体

第一种模式看起来可能更吸引人,但在实践中,特别是当涉及web应用程序时,第二种模式更受欢迎,因为除非UI非常简单,否则它更容易实现。您可能希望了解如何使用servlet过滤器实现视图中的
打开会话
模式(每个请求会话模式的另一个名称),或者查找所选web应用程序框架的文档,了解它如何支持此模式

另一件需要注意的事情是如何执行对话隔离(类似于数据库上事务隔离的概念)。这涉及两个用户同时处理相同数据的可能性,可能会覆盖彼此的更改。看看带有时间戳或版本的乐观锁定