我正在寻找一种在运行时获取有关我的hibernate实体类的信息的方法。详细地说,我需要像
这样的信息ABC类的属性为a,b和c,c为a 列表和与XYZ类的关联
为班级
public class ABC {
private int a;
private String b;
@OneToMany
Private List<XYZ> c;
}
运行时需要的所有内容。我确信Hibernate在运行时知道所有这些,但我不知道如何获取这些信息。
答案 0 :(得分:3)
PersistentClass userMapping = cfg.getClassMapping(ABC.class);
cfg是Hibernate Configuration的一个实例。
PersistentClass包含您需要的所有信息。
答案 1 :(得分:2)
如果您将Hibernate用作JPA 2提供程序,则可以使用JPA 2元模型(javax.persistence.metamodel
)。这将从JPA元数据中为您提供有关JPA实体的信息:
entityManager.getMetamodel().entity(entityClass). getAttributes();
答案 2 :(得分:0)
看起来反射就是你所追求的,它似乎是你所追求的非hibernate特定信息。您只需要了解该类具有哪些字段以及它们的类型...
答案 3 :(得分:0)
您可以使用反射获取此信息。
Class abcClass= ABC.class;
Field[] fields = abcClass.getDeclaredFields();