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什么意思呢?谢谢! (手机提问,格式难看,还望包涵)
展开
1个回答
展开全部
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指定的字段作为关联字段)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询