JPA学习笔记【四】【api】

接口: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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值