我正在采用每个子类的表方法来使用休眠映射一些数据。通常在数据库层,我会在抽象表及其子表中引入一个类型列,这将强制抽象记录只能与匹配类型的子记录相关。然而,从各种资源来看,似乎表明休眠鉴别器用于遗留数据库。这是否意味着我采取了错误的方法?
2 回答
2
每个(子)类的表意味着每个类有一个表,没有抽象表。因此不需要鉴别器。如果您有 Single Table 或 Joined 继承,那么您需要一个鉴别器。
编辑:实际上,Hibernate 的 Table Per Subclass 似乎是 Joined 继承策略。但是,文档中说明了这一点:
Hibernate 对每个子类的表的实现不需要鉴别器列。
于 2011-08-22T13:47:31.637 回答
1
如上所述,每个子类的 Hibernate 表不需要鉴别器。
根据同一来源:“...如果您想在每个子类策略的表中使用鉴别器列,您可以结合使用子类和连接...”
请参阅http://docs.jboss.org/hibernate/core/3.3/reference/en/html/inheritance.html#inheritance-tablepersubclass中的第 9.1.3 节
于 2011-08-22T15:31:50.360 回答