我在使用hibernate生成值对象时得到一个与数据库中表对应的类:
public class Unitinfo implements java.io.Serializable { // Fields
private String unitid;
private String punitid;
private Unitinfo unitinfo;
private String unitname;
private String description;
private String password;
private String phone;       //getters...
       //setters...}xml文件有这么一段:
<many-to-one name="unitinfo" class="com.ljh.nyt.orm.Unitinfo" update="false" insert="false" fetch="select">
      <column name="PUNITID" length="32" />
</many-to-one>

数据库中对应表为:unitinfo,字段除了没有unitinfo外都与类成员变量相对应,主键是unitid,为什么中间要设置一个private Unitinfo unitinfo呢?
请大侠指教!

解决方案 »

  1.   

    punitid是unitid的父id吧,也就是说punitid与unitid是1对多的关系
      

  2.   

        感谢热心得的朋友,那个unitinfo是单位信息,它包括许多上下级单位,那个punitid是用来指示本单位的直属上级单位id的。
    而个人觉得有一个punitid就可一体现了,但是在这里还用了一个unitinfo.
        在程序中有一个sql是这样的“from Unitinfo u where u.unitinfo.unitinfo=:punitid”.这明显实在通过上级id查询下级单位id,为什么要这样用呢?私下认为可以改成这样:"from Unitinfo u where u.punitid=:punitid".
    还请指教
      

  3.   

    private Unitinfo unitinfo; 
    xml文件有这么一段: 
    <many-to-one name="unitinfo" class="com.ljh.nyt.orm.Unitinfo" update="false" insert="false" fetch="select"> 
          <column name="PUNITID" length="32" /> 
    </many-to-one> 这个数据表有一个外键,列名为unitionfo,与Unitionfo的主键关联,