Bor*_* B. 4 hibernate jpa hibernate-4.x
有没有办法在JPA/Hibernate 4.x中获取给定Session/EntityManager的"已知"实体实例列表?
"已知"是指加载,创建或更改,即存在于持久性上下文中的托管实体.我知道EntityManager#contains方法,所以我猜这样的列表是维护的,但我怎么能达到它?
编辑:另外,我如何查询持久化实体的状态(检查它是否在此持久化上下文中创建,更新,删除或清除)?
JPA没有定义这样的能力.但你可以使用Hibernate调用来做到这一点:
final org.hibernate.engine.spi.SessionImplementor session = em.unwrap( org.hibernate.engine.spi.SessionImplementor.class );
final org.hibernate.engine.spi.PersistenceContext pc = session.getPersistenceContext();
final Map.Entry<Object,org.hibernate.engine.spi.EntityEntry>[] entityEntries = pc.reentrantSafeEntityEntries();
Run Code Online (Sandbox Code Playgroud)
entityEntries这是一个Map.Entry实例数组,其"key"是实体本身,其值是org.hibernate.engine.spi.EntityEntry描述有关实体的各种信息的实例,包括EntityEntry.getStatus()等信息.
| 归档时间: |
|
| 查看次数: |
4164 次 |
| 最近记录: |