在运行时获取有关entites的hibernate信息
我正在寻找一种方法来在运行时获取有关我的hibernate实体类的信息。 详细地说,我需要像这样的信息
ABC类具有属性a,b和c,c是列表和与XYZ类的关联
为了上课
public class ABC { private int a; private String b; @OneToMany Private List c; }
运行时需要的一切。 我确信Hibernate在运行时知道所有这些,但我不知道如何获取这些信息。
PersistentClass userMapping = cfg.getClassMapping(ABC.class);
cfg是Hibernate Configuration的一个实例。
PersistentClass拥有您需要的所有信息。
如果您使用Hibernate作为JPA 2提供程序,那么您可以使用JPA 2元模型( javax.persistence.metamodel
)。 这将从JPA元数据中为您提供有关JPA实体的信息:
entityManager.getMetamodel().entity(entityClass). getAttributes();
看起来reflection就是你所追求的,它似乎不是你想要的特定信息。 您只需要有关该类具有哪些字段以及它们是什么类型的信息…
您可以使用reflection获取此信息。
Class abcClass= ABC.class; Field[] fields = abcClass.getDeclaredFields();
- 正确使用Entity和DTO以在Restful Web服务中提供Json
- java.lang.NoClassDefFoundError:javax / validation / ParameterNameProvider
- 使用Spring和Hibernate的一些好的示例应用程序是什么?
- 在子类的Hibernate中为每个表指定不同的序列
- 需要一个Hibernate中主键@OneToOne映射的示例
- 引起:org.hibernate.AnnotationException:mappedBy引用未知的目标实体属性
- java hibernate:在多态hql查询中选择discriminator列
- org.hibernate.PersistentObjectException:传递给持久exception的分离实体
- Spring JPA / Hibernate EmptyInterceptor没有注入Entitymanager / Spring bean