【问题标题】:subclass or Inheritance which way is best using hibernate hbm?子类或继承哪种方式最好使用hibernate hbm?
【发布时间】:2012-02-15 20:32:17
【问题描述】:

有人可以与我分享使用休眠 hbm 文件解决以下问题的更好方法吗?

假设我有 2 个类称为 Vehicle、Car 和 2 个表 Vehicles 和 Car。具有通用字段的车辆,假设每个 Car、Bus 等都有。

我正在尝试为 Car 创建 DomainObject:

  1. 汽车延伸车辆?如果是这样,有人可以分享我如何在 Car hbm 文件中声明 Vehicle 类,并且在保存 Car 对象时同时保存数据吗?

  2. 我可以拥有 2 个单独的 hbm 文件(汽车、车辆),并且在 Car 类中我可以声明类(私人车辆)并将此对象构造为 Car 类的一部分并使用级联保存 Car 类。

有人可以建议哪种方法更好吗?我需要将数据存储在两个表中。

【问题讨论】:

  • 子类(ing)和继承是一样的:)
  • 您使用的是什么版本的 Hibernate?另外,我建议切换到 JPA 或 JPA2,并将 Hibernate 作为提供程序。它使这样的任务(甚至更多)变得微不足道。
  • gubs:已经一周了。您只有一个答案,因此请选择我的答案,或澄清您的问题,以便您获得其他答案。

标签: java hibernate inheritance hbm


【解决方案1】:

使用一两张桌子的区别主要在于偏好,但我会考虑:

  • 您是否想要查询任何类型的所有车辆
  • 所有车辆类型共有(继承)多少属性
  • 您说的是多少辆车(如果有很多,单独的表格可能会更快)

如果您确实想对一个表执行此操作,则可以使用鉴别器字段 (as described in this page) 来识别记录是哪个子类。 Here's the Hibernate documentation.

【讨论】:

  • ,您是否要查询任何类型的所有车辆 [回复]:否所有车辆类型共有(继承)多少属性 [回复]:44 个字段您有多少车辆'正在谈论(如果有很多,单独的表可能会更快[回复]:5种
猜你喜欢
  • 2021-10-29
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
  • 2012-08-10
  • 1970-01-01
  • 2011-09-14
  • 1970-01-01
  • 2022-06-16
相关资源
最近更新 更多