JPA学习笔记【四】【api】

来源:互联网 发布:大数据相关论文结语 编辑:程序博客网 时间:2024/06/04 13:14

接口:Persistence ,主要是获取EntityManagerFactory



EntityManagerFactory接口




EntityManager接口

find()方法:和hibernate中session.get类似

getReference()方法:相当于hibernate中的session.load方法

persist()方法:相当于hibernate中的save方法,区别是若对象有ID,则不能执行insert操作,抛出异常

remove()方法:把对象从数据库移除,但该方法只能移除持久化对象,但hibernate还能移除游离对象


merge(T entity)方法:

1.若传入的是临时对象,会创建一个新的对象,把临时对象的属性复制到新的对象中,然后对新的对象

执行持久化操作,所以新的对象中有ID,临时的则没有ID

2.若传入的是游离对象,即传入的对象有OID,

1)若在EntityManager缓存中没有该对象

2)若在数据库也没有对应的记录

3)JPA会创建一个新的对象,然后把当前游离对象的属性复制到新的对象中

4)对新的对象执行insert操作

5)若在数据库有对应的记录,JPA会查询对应的记录,返回该记录的一个对象,然后把游离对象属性

复制到查询对象中,执行update操作

3.在缓存中有对应的对象,JPA会把游离对象的属性复制到缓存对象中,然后对缓存对象执行update操作



flush()方法:强制发送数据,使实体与数据库保持一致,同hibernate中session的flush()



EntityManager其他方法:

EntityTransaction接口常用方法





0 0