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

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

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

 

2,getReference (Class 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的引用

     

你可能感兴趣的:(jpa)