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

问题描述 投票:0回答:3

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

jpa
3个回答
1
投票

要检查该类是否具有Entity注释:

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

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

所以这是一种检查EntityManagerFactory是否已映射它的方法:

EntityManagerFactory.getMetamodel().entity(clazz);

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


0
投票

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


0
投票
public static void main(String[] args) {
     Class<?> cls = YourClassName.class;
     System.out.println("is entity annotated? "+cls.isAnnotationPresent(Entity.class));
}
© www.soinside.com 2019 - 2024. All rights reserved.