复习 - merge的几种使用情况
总结了一下,merge()方法一般会有如下几种情况处理方法:
1. 当持久化环境存在和merge对象相同的对象,即上一篇文章 << 复习 - detached对象重回持久化环境 >> (http://spring-china.iteye.com/blog/973759) 的最后一个例子
处理: Hiberante会将merge对象的值赋给持久化环境中的对象.
2. 当持久化环境中不存在和merge对象相同的对象,但是数据库中确实存在merge对象对应的数据
处理: Hibernate会将merge对象变成persistent对象,同时把merge对象所有的值赋值给persistent对象的引用,然后进行相关的操作.
3. 当持久化环境中不存在和merge对象相同的对象,而且数据库中也不存在merge对象对应的数据
处理: Hibernate会new一个persistent状态的对象,然后将merge对象的所有值赋值给这个persistent对象,再将数据同步到数据库中.
4. 当merge对象是transient状态
处理 : Hibernate会直接将该transient对象直接持久化到数据库中.
Additional:
还有一个saveOrUpdate()方法,这个方法可以让想偷懒的人省点力,因为它可以不用你去区分对象是transient状态还是detached状态,Hiberante会自动的去处理.
分享到:
相关推荐
在复习笔记中,主要讨论了以下几个核心知识点: 1. **移动机器人自由度分析**:这是机器人学的基础,自由度指的是机器人可独立运动的关节数量,决定了机器人的灵活性和功能范围。对于移动机器人,自由度主要涉及...
**DML**提供了基本的数据操作功能,主要包括以下几种操作: - **SELECT**:查询信息。如获取所有员工的信息。 ```sql SELECT * FROM emp; ``` - **INSERT**:添加新行。如向表中插入一条新的记录。 - **UPDATE**...
### 黄淮学院J2EE考试复习知识点解析 #### Struts2框架的发展历程与核心功能 1. **Struts2框架的起源与发展** Struts2框架是由`webWork`和`xWork`框架发展而来的。其中,`XWork`是一个标准的Command模式实现,...
这篇复习总结主要涵盖了以下几个重要的知识点: 1. **TVP(Table-Valued Parameters)与表变量、临时表、CTE(Common Table Expressions)的区别**: - TVP是SQL Server提供的一种参数化方式,允许传递多行数据...
本文主要介绍了UML(统一建模语言)中的几种关键图表元素,特别是用例图和活动图的相关概念,这些在软件设计和分析中起着至关重要的作用。 首先,我们来看看用例图。用例图是用来描绘系统与外部实体(如用户、组织...
有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。 JARED STILL 从1994年就开始使用...
在C语言考前复习时,理解并掌握递归的原理和应用是至关重要的。 递归的基本要素包括基础情况(Base Case)和递归情况(Recursive Case)。基础情况是递归终止的条件,通常是最简单的情况,可以直接得出结果。而递归...
通过"merge.pdf"这份资料,考生可以系统地复习以上知识点,通过实践题目来检验自己的理解和掌握程度。同时,由于资料全英文,也能锻炼考生在实际工作中阅读和理解英文技术文档的能力。对于备考SCJP或其他Java认证...
首先,让我们来探讨几种常见的排序算法: 1. 冒泡排序(Bubble Sort):冒泡排序是最基础的排序方法,通过不断交换相邻的不正确顺序元素来逐步排序。它的时间复杂度为O(n^2),适用于小规模或部分有序的数据。 2. ...
1. PHP中的数组有哪几种类型?如何创建和访问数组元素? 2. 介绍PHP中的array_push()、array_pop()、array_shift()和array_unshift()函数。 3. 如何合并两个数组?使用array_merge()还是"+"运算符? 4. 使用array_...
本压缩包"算法实验代码"包含了几个关键算法的实现,旨在帮助学习者通过实践理解这些基础且重要的算法概念。下面将对其中涉及的算法进行详细介绍。 1. **贪心算法**(Greedy Algorithm): 贪心算法是一种解决问题...
这个描述表明,"MyTrialApp" 是一个练习项目,用于作者复习和巩固Git与GitHub的使用。通过创建并管理这样一个项目,作者可以实践常见的Git操作,例如克隆、提交、推送、分支管理和合并等,同时也会涉及到GitHub的...
7. **数据整理**:通过`merge()`、`join()`、`concat()`等函数整合多个数据集,或者使用`pivot()`、`unstack()`、`melt()`等操作重塑数据。 接下来是数据可视化部分,Python有多种库供选择,如Matplotlib、Seaborn...
Command Explorer是一款专为Google Chrome浏览器设计的扩展程序,它的主要功能是帮助用户学习和复习Git命令。Git是一种分布式版本控制系统,广泛应用于软件开发和项目管理中,用于追踪对文件的修改,协调多人协作。...
8. **版本控制**:使用Git进行版本控制,了解commit、push、pull、merge等操作。 9. **项目组织**:遵循良好的代码组织和命名规范,理解Maven或Gradle等构建工具的使用。 10. **文档编写**:编写README文件,解释...
ISPW(Integrated Software Process Warehouse)是IBM推出的一种软件配置管理工具,主要应用于大型企业级的软件开发项目。它提供了一套全面的解决方案,用于管理软件生命周期中的版本控制、变更管理、构建管理和问题...