hibernate many to one 非主键关联

hibernate在默认情况下,从表跟主表的关联,是通过主键来关联的,但是如果双方关联的字段都不是主键的情况下,可以在<many-to-one 这方设置一下property-ref,这样就可不通过主键来关联,例如:ListCommon(是<many-to-one方)的listMemberSid字段,要跟Broker(是<one-to-many方)表的brokMemberSid字段关联,只要在ListCommon的xml中加入property-ref=“brokMemberSid”,这样就等于说明了ListCommon表是通过Broker表的brokMemberSid属性来跟Broker来关联的,如下:

Broker.hbm.xml

..........

<hibernate-mapping package="com.crb2b.data.bo">
    <class name="Broker" table="crb2b_broker" >
        <id name="brokId" type="java.lang.Integer">
            <column name="brokId" />
            <generator class="native"></generator>
        </id>

<property name="brokMemberSid" type="java.lang.String">
            <column name="brokMemberSid" length="11" not-null="true" />
        </property>

<set 
            name="crb2bListcommons" 
            lazy="false"              
            inverse="true"
            cascade="all"   
            >
            <key>
                <column name="listMemberSid"    length="11" not-null="true" />
            </key>
            <one-to-many class="ListCommon" />
        </set>

  
ListCommon.hbm.xml:

<hibernate-mapping package="com.crb2b.data.bo">
    <class name="ListCommon" table="crb2b_listcommon" >
        <id name="licoId" type="java.lang.Integer">
            <column name="licoId" />
            <generator class="native"></generator>
        </id>
         
        <many-to-one name="crb2bBroker" class="Broker" fetch="select" property-ref="brokMemberSid">
            <column name="listMemberSid" length="11" not-null="true" />
        </many-to-one>

详细参看:http://hi.baidu.com/piao_live/blog/item/9fa786d02706168aa0ec9ce9.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值