Hibernate 联合主键的xml配置

来源:互联网 发布:数据分析实战 pdf 编辑:程序博客网 时间:2024/06/11 15:01

Hibernate 联合主键的xml配置

一共有三种方式:
1. 直接把composite-id当成entity的一部分(Embeded composite identifier)

<composite-id>
<key-property name="medicareNumber"/>
<key-property name="dependent"/>
</composite-id>

这种就是我们的key也是本身entity,我们不论查询还是其他操作,都需要先来new 一个entity,之后再去查询。
官方不推荐
2. mapped composite identifier

<composite-id class="MedicareId" mapped="true">
<key-property name="medicareNumber"/>
<key-property name="dependent"/>
</composite-id>

这种方式使用了独立的class,但是这个class是一个有其他作用entity,这样两个类都有着两个字段,需要维护。所以特点是代码冗余,所以也不推荐。
3. components as composite identifiers

<composite-id name="id" class="OrderLineId">
<key-property name="lineId"/>
<key-property name="orderId"/>
<key-property name="customerId"/>
</composite-id>

这种使用单独的一个class作为identifier,是官方推荐的方式。这个composite class必须实现java.io.Serializable接口,重写equals和hashCode方法。

Appendix:

<composite-id class="xx" name="xx">    <key-property name="xx" type="xx">      <column name="xx" not-null="true" sql-type="xx"/>    </key-property>    <key-property name="xx" type="xx">    ...</composite-id>
0 0
原创粉丝点击