关于Hibernate';s合并

关于Hibernate';s合并,hibernate,Hibernate,我需要一些关于Hibernate合并方法的说明。它到底是如何工作的。当我有一个分离的实体,并且我希望它被重新访问时,Hibernate是只在同一实体的非当前会话中查看,还是在所有Hibernate会话中查看 是否有任何方法可以使用transistent实体上的合并?它只在当前hibernate会话中查看,而不是在所有hibernate会话中 对于你的第二个问题,你不能用“暂时的”(我相信你的意思,不是“暂时的”)来定义。暂时表示实体尚未保存。合并意味着什么也听不见 它只在当前hibernate会

我需要一些关于Hibernate合并方法的说明。它到底是如何工作的。当我有一个分离的实体,并且我希望它被重新访问时,Hibernate是只在同一实体的非当前会话中查看,还是在所有Hibernate会话中查看


是否有任何方法可以使用transistent实体上的合并?

它只在当前hibernate会话中查看,而不是在所有hibernate会话中


对于你的第二个问题,你不能用“暂时的”(我相信你的意思,不是“暂时的”)来定义。暂时表示实体尚未保存。合并意味着什么也听不见

它只在当前hibernate会话中查找,而不是在所有hibernate会话中查找


对于你的第二个问题,你不能用“暂时的”(我相信你的意思,不是“暂时的”)来定义。暂时表示实体尚未保存。合并意味着什么也听不见

Hibernate的合并用于当前内存中可能同时有多个对象实例,并且希望Hibernate保存对该对象的任何实例所做的所有更改。例如,当您在验证期间通过两种不同的方式加载对象时,可能会发生这种情况

可能导致混淆的一个问题是应用程序会话和Hibernate会话之间的差异。在应用程序会话期间,可以打开和关闭多个Hibernate会话

如果在第一个Hibernate会话中加载对象实例,然后关闭该会话,则该实例将分离。如果您打开一个新会话,然后加载相同的对象(相同ID),Hibernate将构造一个新实例,如果您尝试在第一个会话中获得的对象上使用saveOrUpdate,Hibernate将抛出一个UnuniqueObjectException

<> P>因此,当前的Hibernate会话只关心它自己,它的基础结构的一部分是要知道在映射Hibernate实体的更大的应用程序会话中存在哪些对象,因此它应该在保存或合并操作中考虑。p> 合并是一种告诉Hibernate“我希望您假定我对这个Hibernate实体所做的任何更改都应该保存,即使我对对象的一个实例所做的更改与我要求您保存的一次不同。”SaveOrUpdate是一种告诉Hibernate更加保守并抛出异常的方法


关于Hibernate的saveOrUpdate和merge之间的区别,我的博客中有一些更详细的说明。

Hibernate的merge用于当前内存中可能同时有多个对象实例,并且希望Hibernate保存对该对象的任何实例所做的所有更改。例如,当您在验证期间通过两种不同的方式加载对象时,可能会发生这种情况

可能导致混淆的一个问题是应用程序会话和Hibernate会话之间的差异。在应用程序会话期间,可以打开和关闭多个Hibernate会话

如果在第一个Hibernate会话中加载对象实例,然后关闭该会话,则该实例将分离。如果您打开一个新会话,然后加载相同的对象(相同ID),Hibernate将构造一个新实例,如果您尝试在第一个会话中获得的对象上使用saveOrUpdate,Hibernate将抛出一个UnuniqueObjectException

<> P>因此,当前的Hibernate会话只关心它自己,它的基础结构的一部分是要知道在映射Hibernate实体的更大的应用程序会话中存在哪些对象,因此它应该在保存或合并操作中考虑。p> 合并是一种告诉Hibernate“我希望您假定我对这个Hibernate实体所做的任何更改都应该保存,即使我对对象的一个实例所做的更改与我要求您保存的一次不同。”SaveOrUpdate是一种告诉Hibernate更加保守并抛出异常的方法

关于Hibernate的saveOrUpdate和merge之间的区别,我的博客中有更多的细节