我正在编写一个库,用于通过JPA对许多类型的EJB进行Hibernate。从JPA加载EJB时,库需要使用@Id注释的字段的数据类型。 @Id可以在EJB的超类上注释。 Hibernate或JPA中是否有一个方法可以获得@Id的数据类型?
我很想使用反射,但这需要递归和JPA中可能已经存在的代码。
答案 0 :(得分:4)
如果你可以访问Hibernate SessionFactory,你可以调用sf.getClassMetaData("Your.Class.Name").getIdentifierType().getReturnedClass()
(记得检查那段代码;)