`
zzc1684
  • 浏览: 1191510 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

EntityManager实体操作

阅读更多

EntityManager

 

 持久化实体 persist(entity)

 

newEntity-----托管

 

托管-----无效,什么都不发生

 

删除状态------托管

 

游离-----提交时 例外抛出

 

更新实体

 

对实体的setXxx()方法的调用在容器flush时都会更新的

 

合并merge()

 

newEntity----copy一份----copy的那一份托管

 

托管----无效

 

删除状态---例外抛出

 

游离

 

         1。如果已经存在一个id一样的托管对象了,参数(游离状态)内容复制到托管对象,并返回托管对象。

 

        2。容器不存在id和游离对象相同的托管对象,创建一个游离对象的COPY并托管它,方法返回这个托管的引用。

 

总的来说:游离的对象永远不会变为托管对象,只会把内容合并进copy的或者存在的托管对象

 

remove()

 

托管----删除状态

 

remove游离 会异常

 

我们发现游离和删除状态的相关方法的交叉调用会抛异常

 

刷新实体 refresh()

 

只有托管对象才可以刷新

 

将数据库中最新的数据刷新实体

 

实体状态和生命周期事件

 

 

new ,没有ID,不在管理器的缓存中。

 

托管,容器flush时会同步到数据库

删除状态,仍然在管理器的缓存中,但是flush时,会删除数据库中的映射

游离,有ID,但是不在管理器的缓存中。

find()  getreference()     从数据库中得到实体

flush()

clear ()  所有的托管对象从缓存中清除,之前应该先flush

以下注解在实体内方法上,成为生命周期事件的回调函数

@PostLoad

@PrePersist  @PostPersist

@PreUpdate   @PostUpdate

@PreRemove @PostRemove

分享到:
评论

相关推荐

    EntityManager,实体类数据库访问管理层

    有了实体类CUstoms,下面就可以操作实体类跟操作数据库一样的啦,我们新建一个实体类管理类 CustomsManager.cs public class CustomsManager:EntityManager { public Customs GetByName(string name) { //创建...

    java-entitymanager-generic-dao:使用 Hibernate EntityManager (Spring Boot) 的通用 Dao

    在这个实现中,我们使用 Spring Framework ORM EntityManager 使用预配置的数据源来实现基本操作,例如从数据库中插入、更新、删除和检索实体。 这种实现的主要优点是,由于这个 dao 是使用 Java 泛型实现的,我们...

    JPA学习笔记-EJB-05JPA实体对象状态和实体对象的高级操作

    虽然持久化实体的状态在ORM中是一个老生常谈的问题,...在Web一般情况下也都是交给Spring去管理实体管理器(EntityManager),所以我们还是有必要啰嗦一下,至于肢体的高级操作,实际上也就是实体监听器的使用而已。

    Spring Data JPA/Hibernate 运行期动态模型、动态实体建表、动态字段查询的方式

    涉及到动态生成表结构,动态生成模型实体类动态查询表字段等等,经过调研发现hibernate在这方面是很方便的,调用内置API就能完成系列操作,下面贴出核心代码: /** * @author cjbi */ public class DynamicDdlTest...

    OpenJPA 2.2.1 API (CHM格式)

    在线是指所有针对实体的操作必须在一个 EntityManager 范围中运行。这两个特征,加上 EntityManager 是非序列化的,无法在网络上传输,导致 JPA 应用无法适用于企业应用中的 C/S 实现模式。OpenJPA 扩展了这部分接口...

    spring-jpa-hibernate:使用Spring Data JPA和Hibernate作为JPA提供者的示例应用程序

    使用再次执行操作关系数据库 直接EntityManager访问 直接访问JPA EntityManager ,以对数据库交互进行细粒度控制 集合大小 查找映射集合的大小,而不必加载集合中的所有元素 多个EntityManager 在单个应用程序中...

    EJB3.0 实例教程 -- 切片2

    6.5 持久化实体管理器ENTITYMANAGER..43 6.5.1 Entity获取find()....43 6.5.2 添加 persist().........43 6.5.3 更新 Merge() .........44 6.5.4 删除 Remove() .......44 6.5.5 执行 EJB3 QL操作createQuery() 44 ...

    Hibernate实战(第2版 中文高清版)

     2.2.2 使用Hibernate EntityManager   2.2.3 引入EJB组件   2.2.4 切换到Hibernate接口   2.3 反向工程遗留数据库   2.3.1 创建数据库配置   2.3.2 定制反向工程   2.3.3 生成Java源代码   2.4 与...

    EJB3.0 实例教程 -- 切片1

    6.5 持久化实体管理器ENTITYMANAGER..43 6.5.1 Entity获取find()....43 6.5.2 添加 persist().........43 6.5.3 更新 Merge() .........44 6.5.4 删除 Remove() .......44 6.5.5 执行 EJB3 QL操作createQuery() 44 ...

    J2EE应用开发详解

    294 16.3.5 数据库连接池中使用JDBC 297 16.4 小结 302 第17章 ORM与Java持久化机制 303 17.1 ORM概述 303 17.2 域模型 304 17.3 实体域对象的持久化模式 304 17.4 JPA 305 17.4.1 实体 306 17.4.2 EntityManager ...

    plum-doctrine:PlumDoctrine将Doctrine整合到Plum中。 Plum是PHP的数据处理管道

    教义ORM教义ORM的EntityWriter Plum\PlumDoctrine\ORM\EntityWriter使用Doctrine\ORM\EntityManagerInterface的实例来持久化实体。 它支持具有可配置刷新间隔的批处理操作。 use Plum \ PlumDoctrine \ ORM \ ...

    Especialista-JPA:JPA专家课程资料库

    JPA专家 JPA专家课程资料库 ... 认识EntityManager 高级映射 DDL生成 级联操作 高级JPQL 标准API 本机查询 Bean验证,连接池,实体图 二级缓存 竞争与锁定 多租户 [] pg和EclipseLink []最后主题

    EJB3.0实例教程

    第六章 实体 BEAN(ENTITY BEAN) .............................................................................................................................36 6.1 实体 BEAN的组成文件PERSISTENCE.XML配置...

Global site tag (gtag.js) - Google Analytics