hibernate关系映射1对1的问题。关于property-ref的使用。这个属性只能用于双向1

hibernate关系映射1对1的问题。关于property-ref的使用。这个属性只能用于双向1对1外键关键的<one-to-one>中吗?这个属性是什么意思呢。找了下... hibernate关系映射1对1的问题。关于property-ref的使用。这个属性只能用于双向1对1外键关键的<one-to-one>中吗?这个属性是什么意思呢。找了下官方的解释看不大懂。求更白话的解释。比如wife和husbsnd类,wife中用<many-to-one unique=true .....>来和husband建立关系。husband中使用 <one-to-one>而且指定property-ref为husband且name为wife。这个property-ref什么意思呢?谢谢! (手机提问,格式难看,还望包涵) 展开
 我来答
爱荒岛
推荐于2016-06-13 · TA获得超过161个赞
知道小有建树答主
回答量:157
采纳率:100%
帮助的人:89.5万
展开全部

property-ref是为了解决遗留系统中实体之间的关联。
默认情况下,把被关联实体主键字段作为关联字段。有了property-ref,就可以
通过它指定被关联实体主键以外的字段作为关联字段。

<class name="Person">
    <id name="id">
        <generator class="hilo"/>
    </id>    
    <property name="name" length="100"/>
    <set name="accounts" 
        inverse="true">
        <key column="userId"
            property-ref="userId"/>
        <one-to-many class="Account"/>
    </set>    
    <property name="userId" length="8"/>
</class>
<class name="Account">
    <id name="accountId" length="32">
        <generator class="uuid"/>
    </id>    
    <many-to-one name="user"
        column="userId"
        property-ref="userId"/>    
    <property name="type" not-null="true"/>
</class> 
在Class Person的配置中,若外键未设置property-ref="userId" 的话,表之间的关联语句将如下: Person left outer join Account  on Person.id=Account.userId (被关联实体主键字段作为关联字段)
设置,则如下:
Person left outer join Account  on Person.userId=Account.userId (property-ref指定的字段作为关联字段)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式