如果一个类是持久的(用@Entity注释),JPA中是否有任何方法可以实际检查?
要检查该类是否具有Entity
注释:
if (clazz.isAnnotationPresent(Entity.class)){
//
}
Entity
可能存在,但由于各种原因,您的JPA实现可能无法映射该类。
所以这是一种检查EntityManagerFactory
是否已映射它的方法:
EntityManagerFactory.getMetamodel().entity(clazz);
如果它不是由EntityManagerFactory映射的实体,它会抛出IllegalArgumentException
。
如果使用@Entity注释而不是XML配置,则可以检查它。你有两个选择:
public static void main(String[] args) {
Class<?> cls = YourClassName.class;
System.out.println("is entity annotated? "+cls.isAnnotationPresent(Entity.class));
}