我正在设置一个基本的测试数据实用程序,并希望跟踪 EntityManager 处理的所有数据。有没有一种方法可以一次性获取 EntityManager 管理的所有内容,而不是仅仅为每个实体提供一堆列表?
所以代替这个:
EntityManager em;
List<Entity1> a;
List<Entity2> b;
...
List<Entityn> n;
cleanup() {
for(Entity1 e : a) em.remove(e);
for(Entity2 f : b) em.remove(f);
...
for(Entityn z : n) em.remove(z);
}
我想要这样的东西;
EntityManager em;
cleanup() {
List<Object> allEntities = em.getAllManagedEntities(); //<-this doesnt exist
for(Object o : allEntities) em.remove(o);
}
不确定这是否可能,但我只是想象经理知道它在管理什么?或者,如果您有任何轻松管理一堆实体的想法。
我认为这可能有帮助:
for (EntityType<?> entity : entityManager.getMetamodel().getEntities()) {
final String className = entity.getName();
log.debug("Trying select * from: " + className);
Query q = entityManager.createQuery("from " + className + " c");
q.getResultList().iterator();
log.debug("ok: " + className);
}
基本上EntityManager::元模型包含有关所管理实体的元数据信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)