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指定的字段作为关联字段)
转自 http://blog.csdn.net/fengyuanfa/article/details/5096764