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的引用