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

关于hibernate的映射问题
2个实体A和B,A配置中:
<set name="b" cascade="none" lazy="false">
  <key column="KEY_ID" />
  <one-to-many class="com.domain.B" />
  </set>
我怎么知道A的KEY_ID是和B的哪个字段关联呢?

------解决方案--------------------
楼主,比如现在我有两个表:菜单表(你所说的A表)和角色菜单表(你所说的B表)。菜单表和角色菜单表是一对多的关系。因为一个菜单可以同时存在于多个角色中,但是一个角色却只能够包含有这一个菜单(但是并不是说仅有这一个菜单哦)。那么配置如下:
菜单表的配置:
<set name="bpSmRolePrivs" inverse="true" cascade="delete">
<key>
<column name="MENU_ID" precision="22" scale="0" not-null="true" />
</key>
<one-to-many class="com.szhtp.booking.system.db.entity.BpSmRolePriv" />
</set>
其中bpSmRolePrivs是在A表的POJO中定义的set属性值(private Set bpSmRolePrivs = new HashSet(0));MENU_ID是在B表中定义的一列的字段值;com.szhtp.booking.system.db.entity.BpSmRolePriv对应的是B表的POJO。不知道我这样讲明白了没?

其实你那个值应该填的是B表你定义的那个javabean中对应的那个数据库中的字段。
------解决方案--------------------
<one-to-many class="com.domain.B" />
这个class类中对应的数据库表中的KEY_ID字段