`

Merge()方法解决Illegal attempt to associate a collection with two open sessions

    博客分类:
  • OA
 
阅读更多

public Object merge(Object object)

1. 如果session中并不存在与参数object具有相同主键的对象,那么首先需要根据主键从数据库中加载出该对象,然后将参数object中的属性拷贝到加载出来的那个对象上面,最后返回该持久化对象,同时需要注意,参数object并没有关联到session上。

2. 如果session中存在与参数object具有相同主键的对象,那么直接将参数object中的属性拷贝到该持久化对象上,然后将该持久化对象返回,同时需要注意,参数object并没有关联到session上。
假设有对象person其属性如下:
person(1, "zhangsan", "123");

merge(person);
时,表示它会先从数据库中查询出id和person id值一致的持久化对象
select ... where id = 1
如得到的对象为person2且其属性如下:
person2(1, "lisi", "567");
那么如果它们属性不一样,将person的属性赋给person2
person2(1, "zhangsan","123")

return person2

分享到:
评论

相关推荐

    eclipse常见报错

    4. SSH 架构中 Illegal attempt to associate a collection with two open sessions 问题 。 解决方法:使用 Hibernate 的 merge 方法代替 save、update 等方法。merge 方法可以把对象转变为托管状态的对象,而 ...

    two-phase-merge_sort-.rar_2phase merge sort_merge_sort_two merge

    标题中的"two-phase-merge_sort-.rar_2phase merge sort_merge_sort_two merge"指的是一个采用两阶段归并排序算法的程序或文档集合。这个算法是针对大数据量、无法一次性加载到内存中的情况设计的,常见于外部排序...

    Araxis Merge Professional 2012.4162 (x86/x64).part1

    The Professional Edition of Merge supports three-way folder comparison, enabling two revisions of a folder hierarchy to be merged with their common ancestor or some other folder hierarchy. This can be...

    (winmerge for linux)grimmdp-winmerge-1bd708f4cf72.zip

    WinMerge 3 is a port of WinMerge (http://winmerge.org) to use cross-platform with Qt (http://qt.nokia.com/) framework. This project is still in very early stages. WinMerge 3 is LGPL licensed open ...

    Araxis Merge Professional 2012.4162 (x86/x64).part2

    The Professional Edition of Merge supports three-way folder comparison, enabling two revisions of a folder hierarchy to be merged with their common ancestor or some other folder hierarchy. This can be...

    Hibernate中的merge使用详情解说

    在 Hibernate 中,merge 方法是非常重要的一个方法,它能够帮助开发者轻松地处理数据的更新和插入操作。那么,merge 方法到底如何工作的呢?下面,我们将对 merge 方法进行详细的解释。 首先,merge 方法是一个可以...

    address_merge_with_mobile_data.json

    address_merge_with_mobile_data.json

    C#例子代码 A0711_Merge

    C#例子代码 A0711_MergeC#例子代码 A0711_MergeC#例子代码 A0711_MergeC#例子代码 A0711_MergeC#例子代码 A0711_MergeC#例子代码 A0711_MergeC#例子代码 A0711_MergeC#例子代码 A0711_MergeC#例子代码 A0711_MergeC#...

    C#例子代码 A0710_Merge

    C#例子代码 A0710_MergeC#例子代码 A0710_MergeC#例子代码 A0710_MergeC#例子代码 A0710_MergeC#例子代码 A0710_MergeC#例子代码 A0710_MergeC#例子代码 A0710_MergeC#例子代码 A0710_MergeC#例子代码 A0710_MergeC#...

    svn merge简单操作

    ### SVN Merge 操作详解 #### 一、引言 Subversion (SVN) 是一个广泛使用的版本控制系统,用于管理软件开发中的源代码变更历史。在团队合作中,合并分支(merge)是一项非常重要的操作,它使得开发人员能够将某个...

    WinMerge WinMerge WinMerge

    WinMerge是一款强大的文本和文件比较工具,尤其在IT行业中,它是开发者和版本控制使用者的得力助手。这个软件能够帮助用户高效地对比不同版本的代码或者其他文本文件,从而快速定位和理解版本之间的差异。 首先,...

    merge的注意事项

    在探讨“merge的注意事项”这一主题时,我们深入解析Hibernate框架中merge操作的特性与应用场景,以及它与其他数据持久化方法的区别,特别是与saveOrUpdate函数的对比。这不仅有助于理解Hibernate的核心机制,还能...

    Araxis Merge v6.5/Araxis Merge 2017比对工具

    Araxis Merge是一款比对软件工具,不仅支持单个文件的比对,而且支持对两个文件夹的所有文件进行对比,并实时修改。用了蛮久感觉很好用,所以分享给大家。 里面给大家内嵌了Araxis Merge v6.5和Araxis Merge 2017两...

    Hibernate merge、update与saveOrUpdate方法的区别

    ### Hibernate merge、update与saveOrUpdate方法的区别 在Hibernate框架中,`merge`、`update`与`saveOrUpdate`这三个方法都是用于更新或保存实体对象到数据库中的,但它们之间存在着重要的区别,这些区别主要体现...

    AraxisMerge绿色版

    Araxis Merge是一款备受推崇的文件比较工具,尤其在IT专业人士中广受欢迎。它以其强大的功能、易用性和高效性著称,被誉为最好用的比较工具。这个“AraxisMerge绿色版”是免安装版本,无需复杂的安装过程,用户可以...

    Merge two lists of ordered numbers

    Merge two lists of ordered numbers

    P4Merge, Linux上最好用的merge工具,附git集成

    **P4Merge:Linux上的优秀合并工具与Git集成详解** P4Merge是一款强大的可视化三向合并工具,尤其在Linux环境中,它被广泛认为是最佳的merge工具之一。由Perforce公司开发,P4Merge以其清晰的界面、强大的冲突解决...

    winmerge代码比较工具

    **WinMerge:强大的代码比较与合并工具** WinMerge是一款高效且易用的代码比较工具,类似于知名的Beyond Compare,但它提供了一种免注册码的使用体验,对于开发者和日常文件管理用户来说,它是一个非常实用的选择。...

    Merge工具 win Merge

    **Win Merge:一款强大的文件与文件夹比较工具** 在IT领域,经常需要处理不同版本的文件或代码,这时,一个高效的文件比较工具就显得尤为重要。Win Merge是一款深受开发者和普通用户喜爱的免费文件和文件夹比较工具...

    oracle Merge 函数.doc

    "Oracle Merge 函数详解" Oracle Merge 函数是一种强大的数据操作语句,用于从一个表中选择一些数据更新或者插入到另一个表中。Merge 函数的使用方式有三种:只更新不插入、只插入不更新和既插入也更新。 Merge ...

Global site tag (gtag.js) - Google Analytics