jpa persist,meger,remove,find方法介绍

本文介绍了JPA中EntityManager接口的四个核心方法:persist用于将实体加入缓存并最终保存到数据库;find根据主键从缓存或数据库查询实体;merge将对象状态由detached转变为managed,并在事务提交时更新到数据库;remove根据主键删除对象。
摘要由CSDN通过智能技术生成

jpa规范提供了EntityManager接口来操作数据库,它定义了一些操作数据库的方法,在这里介绍几个重要的方法,就是crud方法。 
1.persist(Object entity)方法 
  这个方法把一个实体加入持久化上下文中,也就是缓存中,在事务提交或者调用flush()方法的时候,把这个实体保存到数据库中(执行insert语句),如果实体已存在,则抛出EntityExistsException异常,缓存则不存在了。 

2.find(Class<T> entityClass,Object primaryObject) (一直报错 返回都是null 所以一直没用这个)
  根据主键从数据库中查询一个实体,这个方法首先从缓存中去查找,如果找不到,就从数据库中去找,并把它加入到缓存中。 
3.merge(T object) 
把一个对象加入到当前的持久化上下文中,就是把一个对象从detach转变为managed,并返回这个对象。当一个对象设置了主键,并调用此方法,就会从数据库中根据主键查找到该对象把它放到持久化上下文中,当事物提交的时候,如果对象发生了改变,更新该对象的改变到数据库中,如果对象没有改变,则什么也不做,如果对象没有设置主键,则插入该对象到数据库中。 
4.remove(Object entity) 
  根据主键从数据库中删除一个对象,这个对象的状态必须是managed,否则会抛出IllegalArgumentException,在一个事务中删除一个对象,假如实体管理器对象为em, 
em.remove(em.merge(entity)),如果直接调用em.remove(entity);会抛出异常 
IllegalArgumentException。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值