JPA的EntityManager类的常用方法

1 篇文章 0 订阅

常用方法

1 EntityManager

1.1 find (Class entityClass,Object primaryKey)

返回指定的OID 对应的实体类对象,如果这个实体存在于当前的持久化环境,则返回一个被缓存的对象;否则会创建一个新的 Entity, 并加载数据库中相关信息;若 OID 不存在于数据库中,则返回一个 null。第一个参数为被查询的实体类类型,第二个参数为待查找实体的主键值。

1.2 getReference (Class entityClass,Object primaryKey)

与find()方法类似,不同的是,如果缓存中不存在指定的
Entity, EntityManager 会创建一个 Entity 类的代理,但是不会立即加载数据库中的信息,只有第一次真正使用此 Entity 的属性才加载,所以如果此 OID 在数据库不存在,getReference() 不会返回 null 值, 而是抛出EntityNotFoundException

1.3 persist (Object entity)

用于将新创建的 Entity 纳入到 EntityManager 的管理。该方法执行后,传入 persist() 方法的 Entity 对象转换成持久化状态。
如果传入 persist() 方法的 
Entity 对象已经处于持久化状态,则 persist() 方法什么都不做。
- 如果对删除状态的 Entity 进行 persist() 操作,会转换为持久化状态。
- 如果对游离状态的实体执行 persist() 操作,可能会在 persist() 方法抛出  EntityExistException(也有可能是在flush或事务提交后抛出)

1.4 remove (Object entity)

删除实例。如果实例是被管理的,即与数据库实体记录关联,则同时会删除关联的数据库记录。

1.5 merge (T entity)

merge() 用于处理 Entity 的同步。即数据库的插入和更新操作

1.6 flush ()

同步持久上下文环境,即将持久上下文环境的所有未保存实体的状态信息保存到数据库中

1.6 setFlushMode (FlushModeType flushMode)

设置持久上下文环境的Flush模式。参数可以取2个枚举
- FlushModeType.AUTO 为自动更新数据库实体,
- FlushModeType.COMMIT 为直到提交事务时才更新数据库记录。

1.7 getFlushMode ()

获取持久上下文环境的Flush模式。返回FlushModeType类的枚举值

1.8 refresh (Object entity):

用数据库实体记录的值更新实体对象的状态,即更新实例的属性值

1.9 clear ()

清除持久上下文环境,断开所有关联的实体。如果这时还有未提交的更新则会被撤消。

1.10 contains (Object entity)

判断一个实例是否属于当前持久上下文环境管理的实体

1.11 isOpen ()

判断当前的实体管理器是否是打开状态

1.12 getTransaction ()

返回资源层的事务对象。EntityTransaction实例可以用于开始和提交多个事务

1.13 close ()

关闭实体管理器。之后若调用实体管理器实例的方法或其派生的查询对象的方法都将抛出 IllegalstateException 异常,除了getTransaction 和 isOpen方法(返回 
false)。不过,当与实体管理器关联的事务处于活动状态时,调用 close 方法后持久上下文将仍处于被管理状态,直到事务完成

1.14 createQuery (String qlString)

1. 创建一个查询对象。
2 .createNamedQuery (String name)
3. 根据命名的查询语句块创建查询对象。参数为命名的查询语句

1.15 createNativeQuery (String sqlString)

使用标准 SQL语句创建查询对象。参数为标准SQL语句字符串

1.16 createNativeQuery (String sqls, String resultSetMapping)

使用标准SQL语句创建查询对象,并指定返回结果集 Map的 名称

2 EntityTransaction

2.1 begin ()

用于启动一个事务,此后的多个数据库操作将作为整体被提交或撤消。若这时事务已启动则会抛出 IllegalStateException 异常

2.2 commit ():

用于提交当前事务。即将事务启动以后的所有数据库更新操作持久化至数据库中。

2.3 rollback ()

撤消(回滚)当前事务。即撤消事务启动后的所有数据库更新操作,从而不对数据库产生影响。

2.4 setRollbackOnly ()

使当前事务只能被撤消。

2.5 getRollbackOnly ()

查看当前事务是否设置了只能撤消标志。

2.6 isActive ():

查看当前事务是否是活动的。如果返回true则不能调用begin方法,否则将抛出
IllegalStateException 异常;如果返回 false 则不能调用 commitrollback、setRollbackOnly 及 getRollbackOnly 方法,否则将抛出 
IllegalStateException 异常
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值