`
spring-china
  • 浏览: 50788 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

复习 - merge的几种使用情况

阅读更多

复习 - 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会自动的去处理.

 

 

0
3
分享到:
评论

相关推荐

    移动机器人复习笔记1

    在复习笔记中,主要讨论了以下几个核心知识点: 1. **移动机器人自由度分析**:这是机器人学的基础,自由度指的是机器人可独立运动的关节数量,决定了机器人的灵活性和功能范围。对于移动机器人,自由度主要涉及...

    sql语句基础(很好的复习资料)

    **DML**提供了基本的数据操作功能,主要包括以下几种操作: - **SELECT**:查询信息。如获取所有员工的信息。 ```sql SELECT * FROM emp; ``` - **INSERT**:添加新行。如向表中插入一条新的记录。 - **UPDATE**...

    黄淮学院J2EE考试复习试题

    ### 黄淮学院J2EE考试复习知识点解析 #### Struts2框架的发展历程与核心功能 1. **Struts2框架的起源与发展** Struts2框架是由`webWork`和`xWork`框架发展而来的。其中,`XWork`是一个标准的Command模式实现,...

    SQL Server 总结复习(一)

    这篇复习总结主要涵盖了以下几个重要的知识点: 1. **TVP(Table-Valued Parameters)与表变量、临时表、CTE(Common Table Expressions)的区别**: - TVP是SQL Server提供的一种参数化方式,允许传递多行数据...

    sad 复习1

    本文主要介绍了UML(统一建模语言)中的几种关键图表元素,特别是用例图和活动图的相关概念,这些在软件设计和分析中起着至关重要的作用。 首先,我们来看看用例图。用例图是用来描绘系统与外部实体(如用户、组织...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。  JARED STILL 从1994年就开始使用...

    C语言考前算法代码记忆.docx

    在C语言考前复习时,理解并掌握递归的原理和应用是至关重要的。 递归的基本要素包括基础情况(Base Case)和递归情况(Recursive Case)。基础情况是递归终止的条件,通常是最简单的情况,可以直接得出结果。而递归...

    Java认证基础资料

    通过"merge.pdf"这份资料,考生可以系统地复习以上知识点,通过实践题目来检验自己的理解和掌握程度。同时,由于资料全英文,也能锻炼考生在实际工作中阅读和理解英文技术文档的能力。对于备考SCJP或其他Java认证...

    Python常见排序算法汇总共2页.pdf.zip

    首先,让我们来探讨几种常见的排序算法: 1. 冒泡排序(Bubble Sort):冒泡排序是最基础的排序方法,通过不断交换相邻的不正确顺序元素来逐步排序。它的时间复杂度为O(n^2),适用于小规模或部分有序的数据。 2. ...

    最全的PHP面试题总汇

    1. PHP中的数组有哪几种类型?如何创建和访问数组元素? 2. 介绍PHP中的array_push()、array_pop()、array_shift()和array_unshift()函数。 3. 如何合并两个数组?使用array_merge()还是"+"运算符? 4. 使用array_...

    算法实验代码

    本压缩包"算法实验代码"包含了几个关键算法的实现,旨在帮助学习者通过实践理解这些基础且重要的算法概念。下面将对其中涉及的算法进行详细介绍。 1. **贪心算法**(Greedy Algorithm): 贪心算法是一种解决问题...

    mytrialapp:刷新git命令和github

    这个描述表明,"MyTrialApp" 是一个练习项目,用于作者复习和巩固Git与GitHub的使用。通过创建并管理这样一个项目,作者可以实践常见的Git操作,例如克隆、提交、推送、分支管理和合并等,同时也会涉及到GitHub的...

    python期末数据清洗可视化大作业.zip

    7. **数据整理**:通过`merge()`、`join()`、`concat()`等函数整合多个数据集,或者使用`pivot()`、`unstack()`、`melt()`等操作重塑数据。 接下来是数据可视化部分,Python有多种库供选择,如Matplotlib、Seaborn...

    Command Explorer-crx插件

    Command Explorer是一款专为Google Chrome浏览器设计的扩展程序,它的主要功能是帮助用户学习和复习Git命令。Git是一种分布式版本控制系统,广泛应用于软件开发和项目管理中,用于追踪对文件的修改,协调多人协作。...

    BA4_GEN_Labo3

    8. **版本控制**:使用Git进行版本控制,了解commit、push、pull、merge等操作。 9. **项目组织**:遵循良好的代码组织和命名规范,理解Maven或Gradle等构建工具的使用。 10. **文档编写**:编写README文件,解释...

    ISPW考试

    ISPW(Integrated Software Process Warehouse)是IBM推出的一种软件配置管理工具,主要应用于大型企业级的软件开发项目。它提供了一套全面的解决方案,用于管理软件生命周期中的版本控制、变更管理、构建管理和问题...

Global site tag (gtag.js) - Google Analytics