查询EntityManager以获取实体关系

时间:2019-05-21 22:04:39

标签: jpa spring-data-jpa

实体管理器应该具有系统的所有JPA实体和关系的信息。有没有一种方法可以通用查询实体的所有关系?理想情况下,即使没有反向链接,我们也希望检索关系双方的信息。

我经历了EntityManager API,最初认为EntityGraphs可能会返回我想要的信息。但是,只有在实体中定义而不是由实体管理器生成的情况下,才出现返回值。

1 个答案:

答案 0 :(得分:0)

如果我的理解正确,那么您想反省有关实体的信息。 使用JPA Metamodel API可以做到这一点。

要点:

Metamodel metamodel = em.getMetamodel();
//Get a specific entity information
EntityType<MyEntity> typeMyEntity = metamodel.entity(MyEntity.class);

// Get all the entity classes:
Set<EntityType> allEntityTypes = metamodel.getEntities();

// Get all the attributes - including inherited:
Set<Attribute> attributes1 = typeMyEntity.getAttributes();