在Hibernate中,当我得到简单的Pojo时,例如User:
private class User{
private String name;
}
当我想获得“名字”的属性时,只需使用:
sessionFactory.getClassMetadata(User.class).getPropertyType("name")
但是当我向我的用户添加课程Grou时:
private class User{
private String name;
private Group group;
}
我之前的代码:
sessionFactory.getClassMetadata(User.class).getPropertyType("group.name")
不起作用。 有什么方法可以解决吗?
答案 0 :(得分:0)
将您的查询group.name
拆分为相应的部分group
和name
。
Class<?> currentClass = User.class;
for(String field: "group.name".split("\\Q.\\E")) {
currentClass = sessionFactory.getClassMetadata(currentClass).getPropertyType(field);
}
答案 1 :(得分:0)
要使group.name
起作用,您还必须为Group类指定映射。
如果您已经指定了映射但仍然无法正常工作,那么请在此处共享映射文件。
问题可能只在映射中。