2015-03-02 52 views
0

我需要的是持久的实体,我需要有实体信息clasess的列表,使用JPAJPA - 检索所有实体类

的反射API

我有EntityManager的,但我不知道这是否是方式。

我想为我的实体使用EntityListener进行通用日志记录。这很好,但我没有办法将听众注册到我的所有实体。

回答

1

使用JPA2 MetaModel?它有各种方法来查看实体(或托管类型)。

Set<javax.persistence.metamodel.EntityType<?>> entityTypes = entityManagerFactory.getMetamodel().getEntities(); 
    for (javax.persistence.metamodel.EntityType entityType : entityTypes){ 
     logger.info(entityType.getName()); 
     logger.info(entityType.getJavaType().getCanonicalName()); 
     logger.info("******************************"); 
    } 
1

看看Configuration#getClassMappings()

返回:实体映射的迭代器当前包含在配置中。

+0

感谢Predrag,配置是一个Hibernate类,对不对?,在我的情况下,这不起作用,因为我使用Eclipse Link,我想做一个JPA解决方案。 – jrey 2015-03-02 14:55:01

+1

你用Hibernate标签标记了你的问题,这就是我发布这个的原因。如果我找到JPA方法来执行此操作,我将编辑我的答案。 – 2015-03-02 14:58:55

+0

对不起!对不起,这是我的错 – jrey 2015-03-02 15:04:08