我想知道是否有一种方法可以为JPA中的特定持久性单元获取所有Entities类及其元数据。
通过元数据,我不仅指字段,还指它们的列名,长度,精度,数据类型,以及表名和我可以得到的任何东西。我尝试使用元模型,但我认为这仅适用于JPQL查询。
我需要向用户显示某个PU的所有活动实体,并且我不想在某些数组或数据库中对它们进行硬编码,我希望API告诉我它具有什么实体。并且,如果可能,获取每个实体的托管实例。
我想我可以尝试使用反射来获取带有@Entity批注的所有类,但这并不是很漂亮,而且很难知道哪个属于特定的PU,因此,如果api已经公开了此信息,它将是大。
我希望使用符合JPA的解决方案,但如果不可能,则可以使用Hibernate或EclipseLink特定的答案。
谢谢!
是的,您可以从获取有关实体的所有实体和相应的元数据信息EntityManager。
EntityManager
EntityManager.getMetamodel()将使Metamodel您能够从中访问界面EntityType并ManagedType获取实体的属性。
EntityManager.getMetamodel()
Metamodel
EntityType
ManagedType