org1是一 ,org2,org3,org4是多; 最后一个字段是pid
1 只有一对多:
<set name="children">
<key column="pid"/>
<one-to-many class="com.oa.model.Orgnization"/>
</set>
结果:一可以访问多
1;org2;<NULL>;<NULL>;4;
2;org3;<NULL>;<NULL>;4;
3;org4;<NULL>;<NULL>;4;
4;org1;<NULL>;<NULL>;<NULL>;
2 只有多对一:
<many-to-one column="pid" name="parent"/>
结果:
1;org1;<NULL>;<NULL>;<NULL>;
2;org2;<NULL>;<NULL>;1;
3;org3;<NULL>;<NULL>;1;
4;org4;<NULL>;<NULL>;1;
3 多对一双向(1):column名不同
<many-to-one column="pid" name="parent"/>
<set name="children">
<key column="pid1"/>
<one-to-many class="com.oa.model.Orgnization"/>
</set>
结果:
pid pid1
1;org2;<NULL>;<NULL>;<NULL>;4;
2;org3;<NULL>;<NULL>;<NULL>;4;
3;org4;<NULL>;<NULL>;<NULL>;4;
4;org1;<NULL>;<NULL>;<NULL>;<NULL>;
3 多对一双向(2):一端存入数据后,别一端也能拥有了数据,例如org2,org3,org4的parent设置为org1,那么org1的children集合时就自动有了org2,org3,org4。
<many-to-one column="pid" name="parent"/>
<set name="children">
<key column="pid"/>
<one-to-many class="com.oa.model.Orgnization"/>
</set>
结果:
1;org1;<NULL>;<NULL>;<NULL>;
2;org2;<NULL>;<NULL>;1;
3;org3;<NULL>;<NULL>;1;
4;org4;<NULL>;<NULL>;1;
3 多对一双向(3):设置inverse=“true” ,那在一的一端,也就是org1的一端,更新children集合时,对数据无效。
<many-to-one column="pid" name="parent"/>
<set name="children" inverse="true">
<key column="pid"/>
<one-to-many class="com.oa.model.Orgnization"/>
</set>