有没有办法检查类是否可持久化

时间:2018-03-02 14:05:33

标签: jpa

如果某个类持久(使用 @Entity 注释),JPA中是否有任何方法可以实际检查?

3 个答案:

答案 0 :(得分:1)

检查班级是否有Entity注释:

if (clazz.isAnnotationPresent(Entity.class)){
   //
}

Entity可能存在,但由于各种原因,您的JPA实现可能无法映射该类。

因此,这是一种检查EntityManagerFactory是否已映射它的方法:

EntityManagerFactory.getMetamodel().entity(clazz);

如果它不是由EntityManagerFactory映射的实体,则抛出IllegalArgumentException

答案 1 :(得分:0)

如果使用@Entity注释而不是XML配置,则可以检查它。 你有两个选择:

答案 2 :(得分:0)

public static void main(String[] args) {
     Class<?> cls = YourClassName.class;
     System.out.println("is entity annotated? "+cls.isAnnotationPresent(Entity.class));
}