Adeline学习之jpa EntityManager进行持久化的操作方法

1,find(Class<T> entityClass,Object primaryKey):查询操作,在执行查询时就被EntityManager执行

       参数  :返回对应的实体类,待查实体的主键值

 

2,getReference (Class<T> entityClass,Object primaryKey):与find方法相似,不同的是该方法只有在使用查询的信息时,该方法才会被调用

 

3,persist (Object entity):将传入的实体类进行持久化操作,若实体类的主键已存在,则抛出异常

 

4,remove (Object entity)删除实例。  注意:该方法只能删除已经持久化的数据

 

5. merge (T entity):merge() 用于处理 Entity 的同步。即数据库的插入和更新操作

      以下介绍merge在几种情况下的使用:

      1 操作对象A为  临时对象

          EntityManager会先新建一个对象B ,然后把对象A的数据拷贝到对象B中,再持久化这个对象B,执行insert操作

         -->返回持久化对象B的引用

      2 操作对象A(id为1)为  游离对象

         (1)缓存中存在id为1的持久化对象B:把游离对象A的属性拷贝到持久化对象B中,执行update操作

         -->返回持久化对象B的引用

         (2)缓存中不存在id为1的持久化对象B:

                a:数据库中存在id为1 的记录:从数据库中加载id为1 的持久化对象B,把游离对象A的属性拷贝到持久化对象B中,执行update操作

         -->返回持久化对象B的引用

                b:数据库中不存在id为1 的记录:EntityManager会先新建一个对象B ,然后把对象A的数据拷贝到对象B中,再持久化这个对象B,执行insert操作

         -->返回持久化对象B的引用

     

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值