Hibernate中操作managed/persistent状态的Entity对象使之成为detached状态的Entity对象
来源:互联网 发布:支付宝 api端口号 编辑:程序博客网 时间:2024/06/11 21:47
Hibernate中处于managed/persistent状态的Entity对象,通过持久化上下文(如Session或EntityManager)能够自动关联到数据库中的对象。这样,在Hibernate应用中对managed/persistent状态的Entity对象的操作将会同步到数据库中。
但是,当需要批量修改大量Entity对象时,这种对各个Entity对象的自动同步将会造成数据库性能压力。为此,可以使managed/persistent状态的Entity对象转变为detached状态的Entity对象,从而避免自动同步。这样,在Hibernate应用需要的时候再明确调用saveOrUpdate()或update()方法实现数据的再次同步。
使managed/persistent状态的Entity对象转变为detached状态的Entity对象,可以对Entity对象执行evict()操作(对于Session)或detach()操作(对于EntityManager),示例如下。
对于Hibernate的Native API,示例如下:
Session session = entityManager.unwrap( Session.class );for(Person person : (List<Person>) session.createQuery("select p from Person p").list()) { dtos.add(toDTO(person)); session.evict( person );}
对于Hibernate的JPA API,示例如下:
for(Person person : entityManager.createQuery("select p from Person p", Person.class) .getResultList()) { dtos.add(toDTO(person)); entityManager.detach( person );}
如果要将持久化上下文(如Session或EntityManager)中的所有Entity对象都转换为detached状态,则还可以对Session或EntityManager执行clear()操作。
对于Hibernate的Native API,示例如下:
session.clear();
对于Hibernate的JPA API,示例如下:
entityManager.clear();
1 0
- Hibernate中操作managed/persistent状态的Entity对象使之成为detached状态的Entity对象
- Hibernate中操作处于managed/persistent状态的Entity对象
- Hibernate中处于detached状态的Entity对象融合(merge)得到另一个persistent状态的Entity对象
- Hibernate中处于detached状态的Entity对象的再次同步
- Hibernate中Entity对象状态的检测
- 【hibernate框架】对象的三种状态Transient-Persistent-Detached
- Hibernate 对象的三种状态 transient persistent detached
- Hibernate的对象的三种状态 瞬时态(Transient 持久态(Persistent 脱管态(Detached
- hibernate中对象的3种状态——瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)
- 【SSH快速进阶】——探索Hibernate对象的三种状态:Transient、Persistent、Detached
- hibernate管理的entity对象的三种状态
- Hibernate中的持久化上下文与Entity对象的状态
- hibernate:transient、persistent、detached状态
- Entity Framework - 更新detached对象的正确方法
- 系统学习hibernate之三:transient、persistent、detached状态
- Hibernate学习之Transient、Persistent、Detached三种状态
- Hibernate之对象的状态
- Hibernate中对象的状态
- 来自中午机房的1071
- C语言笔记系列(一)--概述
- QTcpsocket 使用 模板
- java工具类之对象与字节数组之间的互相转换
- php代码优化
- Hibernate中操作managed/persistent状态的Entity对象使之成为detached状态的Entity对象
- 文章标题
- ios 判断字符串为空和只为空格解决办法
- 高精度乘方二
- 剑指offer-面试题22:栈的压入,弹出序列
- win10 驱动程序无法使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:Could not generate DH keypair
- 学习 java native关键字
- 如何解决#1045 - Access denied for user 'root'@'localhost' (using password: NO)问题
- CTS Fail: android.hardware.cts.CameraTest-- testJpegExif