检索JPA实体列表和元数据

我想知道是否有办法在JPA中获取特定持久单元的所有实体类及其元数据。

通过元数据,我不仅指字段,还指它们的列名,长度,精度,数据类型,以及表名和我可以获得的任何内容。 我尝试使用元模型,但我认为仅仅针对JPQL查询。

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

我想我可以尝试使用reflection来获取带有@Entity注释的所有类,但它不会很漂亮,并且更难以知道哪个类属于特定的PU,所以如果api已经暴露了这个信息,那么它将是大。

我更喜欢符合JPA的解决方案,但如果不可能,Hibernate或EclipseLink特定的答案就可以做到。

谢谢!

实体在定义时独立于任何持久性单元。 它们在persistence.xml中与定义中的持久性单元相关联。 管理给定持久单元的实体管理器的EntityManagerFactory似乎没有任何API来获取它管理的实体列表。 Hibernate的SessionFactory,与EntityManagerFactory的对应,确实有API来获取类元数据( http://docs.jboss.org/hibernate/core/3.5/api/org/hibernate/SessionFactory.html )。