`
zhushaolong
  • 浏览: 64300 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

get load -- save persist -saveorUpdate merge

SQL 
阅读更多

1)

get直接访问数据库  通过“会立马显示select ..."sql语句说明是

load支持懒加载模式  但真正需要数据的时候才会显示 查询语句

 

另外注意的是读取数据当然不需要Transaction

2)

不开启事物(Transaction)的时候 
save会显示插入语句 但是会回滚  并没有插入到数据库中

而persist直接报异常

 

开启事物的时候一样

 

3)

saveorUpdate    后,被操作对象会变成持久的。

merge后 被操作对象还是脱管的。
对于merge    一般处在commit之前使用,此时在merge之后,commit之前再写上如:user.setName("张三");
不会提交到数据库中的。因为merge后的对象是托管的。

 

分享到:
评论

相关推荐

    hibernate的各种保存方式的区别以及hibernate对象的三种状态[定义].pdf

    通过Session的save()、get()或load()方法可以将对象设置为持久化状态。 - Detached(游离):持久化对象在Session关闭后,就会变为游离状态。这时,对象与Session断开,但其仍然包含数据库中的数据副本。更新游离...

    Hibernate 映射关系! 基础封装

    `save()`、`update()`、`saveOrUpdate()`、`persist()`和`merge()`是Hibernate中用于处理对象状态变化的主要方法。 - **save()**:保存一个新的瞬态对象到数据库,生成并返回主键标识符。如果对象已存在,可能会...

    java框架面试题

    #### 五、Session中的save、update、merge、lock、saveOrUpdate和persist方法 **1. 方法的功能与区别** - **save**:将一个瞬时态的对象变为持久态,会触发INSERT语句。 - **update**:将一个游离态的对象变为持久...

    Java面试题全集.docx

    - **save、update、merge、lock、saveOrUpdate、persist**: - **save**:将瞬时态对象变成持久态,并生成SQL的INSERT语句。 - **update**:将游离态对象变成持久态,并生成SQL的UPDATE语句。 - **merge**:既...

    hibernate学习笔记

    - `get()`和`load()`:两者都用于获取对象,但`load()`使用懒加载,若对象不存在则抛出异常,而`get()`直接返回null。 - `save()`和`persist()`:`save()`在事务中直接插入数据,而`persist()`仅标记对象为持久化...

    jsp Hibernate 函数简介.docx

    - **persist()**:与save()相似,主要用于延迟加载环境,两者在大多数情况下等价。 - **update()**:更新数据库中已存在的对象。 - **saveOrUpdate()**:根据对象的ID判断是保存还是更新,方便统一处理。 - **...

    Hibernate的Session的javadoc

    通过Session的get()或load()方法获取的对象默认处于此状态。 - **游离状态(Detached)**:对象曾经是持久化的,但当前未与任何Session关联。对象在游离状态下可以被重新持久化。 2. **对象持久化操作**: - **...

    Hibernate笔记

    - `persist()`和`save()`功能相似,但在没有事务时,`save()`会立即保存数据并回滚,而`persist()`在无事务时不会保存。 9. Hibernate对象状态: - 瞬时(transient):对象未与Session关联,数据库中无对应记录...

    java框架方面面试题

    最后,Hibernate中Session的save()、update()、merge()、lock()、saveOrUpdate()和persist()方法的功能与区别也是面试中常考的点。Hibernate定义了对象的三种状态:瞬时态、持久态和游离态。瞬时态对象是指刚被创建...

    Hibernate的学习笔记

    - `persist()`:与`save()`类似,但不立即生成ID,而是等到Session提交事务时才生成。 - `merge()`:将游离状态的对象复制到与之有相同ID的持久化对象上。 - `replicate()`:根据当前ID持久化游离状态的对象。 -...

    JAVA面试问题及标准答案.docx

    Session中还有其他几个重要的操作方法,如save()、update()、merge()、lock()、saveOrUpdate()和persist()。save()和persist()都是用来将瞬时态对象变为持久态,但标识符的分配可能会被推迟。update()用于将游离态...

    hibernate api

    - `session.save(Object entity)` 和 `session.saveOrUpdate(Object entity)` 都可以用来保存实体,但`saveOrUpdate()`会根据对象是否存在数据库中决定是执行`save()`还是`update()`。 - `session.load(Class ...

    hibernate3.2生命周期

    对象必须在Session缓存中,否则需先调用`load()`或`get()`。 ### 5. Session缓存 Session缓存分为一级缓存和二级缓存。一级缓存是每个Session内部的,对象一旦持久化就会被添加进去。二级缓存是可选的,可以跨多个...

    JAVA面试问题及答案.docx

    此外,Session还提供了save()、update()、merge()、lock()、saveOrUpdate()和persist()等方法来管理对象的状态。save()和persist()用于将瞬时态对象转变为持久态,而update()和merge()则用于更新游离态对象。merge()...

    hibernate相关基础

    - `load()`:类似 `get()`,但在没有找到实体时抛出异常。 - `saveOrUpdate()`:如果实体不存在则保存,存在则更新。 - `merge()`:合并一个游离态实体到当前 Session。 #### 事务处理 事务(Transaction)是...

    Java面试题全集(下)

    save()、update()、merge()、lock()、saveOrUpdate()和persist()等方法用于处理Hibernate对象的三种状态:瞬时态、持久态和游离态。这些方法决定了对象的状态转换以及是否执行SQL语句。 5. JavaEE框架:除了...

    支持多数据库的ORM框架ef-orm.zip

    事实上针对单个对象的get/load/persist/save/update/merge/saveOrUpdate API和Criteria API本来就为一体,只不过是历史的原因被人为割裂成为两套数据库操作API罢了。  因此,对于关系型数据库而言——Entity和...

    Hibernate 对象的三种状态和特点

    如果想要使对象进入持久状态,需要通过Session的`save()`、`saveOrUpdate()`或`persist()`方法。 2) 持久状态(Persistent State): 一旦对象通过Session的`save()`, `update()`, `load()`等方法被管理,它就会...

Global site tag (gtag.js) - Google Analytics