一尘不染

检索JPA实体列表和元数据

hibernate

我想知道是否有一种方法可以为JPA中的特定持久性单元获取所有Entities类及其元数据。

通过元数据,我不仅指字段,还指它们的列名,长度,精度,数据类型,以及表名和我可以得到的任何东西。我尝试使用元模型,但我认为这仅适用于JPQL查询。

我需要向用户显示某个PU的所有活动实体,并且我不想在某些数组或数据库中对它们进行硬编码,我希望API告诉我它具有什么实体。并且,如果可能,获取每个实体的托管实例。

我想我可以尝试使用反射来获取带有@Entity批注的所有类,但这并不是很漂亮,而且很难知道哪个属于特定的PU,因此,如果api已经公开了此信息,它将是大。

我希望使用符合JPA的解决方案,但如果不可能,则可以使用Hibernate或EclipseLink特定的答案。

谢谢!


阅读 296

收藏
2020-06-20

共1个答案

一尘不染

是的,您可以从获取有关实体的所有实体和相应的元数据信息EntityManager

EntityManager.getMetamodel()将使Metamodel您能够从中访问界面EntityTypeManagedType获取实体的属性。

2020-06-20