日期:2014-05-17  浏览次数:20794 次

many-to-one 和 one-to-many怎么理解
<hibernate-mapping>
  <class name="com.cp.model.ProjComplete" table="CP_PROJ_COMPLETE" >
  <id name="cpId" type="java.lang.Long">
  <column name="CPID" />
  <generator class="assigned"></generator>
  </id>
   

  <many-to-one name="proj" column ="PROJ_PK" />  
  <many-to-one name="modifyBy" column ="MODIFY_BY" />
  <many-to-one name="pm" column ="PM" />  
   
  <set name="comApplyAttach" >
  <key>
  <column name="CPID" />
  </key>
  <one-to-many class="com.cp.model.ApplyAttach" />
  </set>
  <set name="projDeptLink" >
  <key>
  <column name="PROJ_PK" />
  </key>
  <one-to-many class="com.proj.model.Proj" />
  </set>  
   

  <property name="modifyTime" type="java.util.Date">
  <column name="MODIFY_TIME" />
  </property>
  <property name="applyTime" type="java.util.Date">
  <column name="APPLY_TIME" />
  </property>
  <property name="expectedEndTimeStr" type="java.util.Date">
  <column name="EXPECTEDENDTIMESTR" />
  </property>
  <property name="isUrgent" type="java.lang.String">
  <column name="IS_URGENT" />
  </property>
  <property name="urgentDesc" type="java.lang.String">
  <column name="URGENT_DESC" />
  </property>
  <property name="completeReason" type="java.lang.String">
  <column name="COMPLETE_REASON" />
  </property>
  <property name="isValid" type="java.lang.String">
  <column name="IS_VALID" />
  </property>
  <property name="process_EndDate" type="java.lang.String">
  <column name="PROCESS_ENDDATE" />
  </property>
  <property name="cpStatue" type="java.lang.String">
  <column name="CPSTATUE" />
  </property>
  </class>
</hibernate-mapping>

------解决方案--------------------
多对一,和一对多呗。

很多孙子。。。但是爷爷只有一个,对孙子来说这是多对一。
爷爷有很多孙子。。。。,对爷爷来说这是一对多。

很多爷爷有很多孙子。。,这是多对多。。 但是这是不可能的。。。
------解决方案--------------------
多对一,一对多,也就是表的外键关系。可以正过来说也可以反过来说的。
------解决方案--------------------
杯子和茶壶
茶壶和杯子
------解决方案--------------------
探讨
表CP_PROJ_COMPLETE,PROJ_PK是该表一个字段
<many-to-one name="proj" column ="PROJ_PK" />该如何理解