Hibernate 联合主键的xml配置

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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值