简体   繁体   English

多对一在Hibernate中,获得列式

[英]Many to One in hibernate, get column type

In Hibernate when I got simple Pojo, for example User: 在Hibernate中,当我得到简单的Pojo时,例如User:

private class User{
   private String name;
}

When I want to get property of the "name", a simply use: 当我想获取“名称”的属性时,只需使用:

sessionFactory.getClassMetadata(User.class).getPropertyType("name")

But when I add a class Grou to my User: 但是,当我向用户添加Grou类时:

private class User{
   private String name;
   private Group group;
}

My previous code : 我以前的代码:

  sessionFactory.getClassMetadata(User.class).getPropertyType("group.name")

doesn't work. 不起作用。 Any way to solve it? 有什么办法解决吗?

Split your query group.name into the corresponding parts group and name . 将查询group.name拆分为相应的部件groupname

Class<?> currentClass = User.class;
for(String field: "group.name".split("\\Q.\\E")) {
    currentClass = sessionFactory.getClassMetadata(currentClass).getPropertyType(field);
}

for group.name to work , you have to specify the mapping for Group class also. 为了使group.name工作,您还必须为Group类指定映射。 If you have already specified a mapping and still its not working then please share the mapping file here. 如果您已经指定了一个映射,仍然它不是那么工作,请在这里分享的映射文件。 Issue might be in the mapping only. 问题可能仅在映射中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM