【问题标题】:JPA - Retrieve all Entity ClassesJPA - 检索所有实体类
【发布时间】:2015-03-02 14:38:25
【问题描述】:

我需要有一个持久实体类的列表,我需要有实体信息,使用 JPA 的反射 API

我有EntityManager,但我不知道是不是这样。

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

【问题讨论】:

    标签: java jpa reflection eclipselink


    【解决方案1】:

    使用 JPA2 元模型?它具有查看实体(或托管类型)的各种方法。

     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("******************************");
        }
    

    【讨论】:

      【解决方案2】:

      看看Configuration#getClassMappings()

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

      【讨论】:

      • 谢谢 Predrag,Configuration 是一个 Hibernate 类,对吗?在我的情况下,这不起作用,因为我使用的是 Eclipse Link,我想做一个 JPA 解决方案。
      • 你用 Hibernate 标签标记了你的问题,这就是我发布这个的原因。如果我找到 JPA 方法来执行此操作,我将编辑我的答案。
      • 对不起!!对不起!,这是我的错
      猜你喜欢
      • 2019-03-22
      • 1970-01-01
      • 1970-01-01
      • 2015-07-24
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      相关资源
      最近更新 更多