【发布时间】:2009-08-05 23:26:48
【问题描述】:
我正在处理以下场景:
我们使用table-per-subclass inheritance,这意味着具体表的主键是抽象表上的外键引用。超类是Product,子类是Book、DVD、AudioCD、...
现在在 Java 超类中,比如Product.java,我们有一个产品类型的enum:书籍、dvd、音乐等。
我们在抽象表中没有鉴别器列,也没有额外的类型表。
是否可以根据具体对象将Product.java 中的type enum 映射到正确的值?还是需要鉴别器或额外的表格?
... ....
每个子类的表继承映射摘录:
<class name="Product" table="PRODUCT">
<id name="id" column="IDPRODUCT" type="int">
<generator class="native" />
</id>
...
<joined-subclass name="Book" table="BOOK">
<key column="IDPRODUCT" />
<property ...
</joined-subclass>
...
... ...
Product.java
public class Product {
public enum Type { book, dvd, music }
...
private Type type;
...
听起来很奇怪?也许。两方分别设计了OO部分和DB部分……
【问题讨论】:
标签: java database hibernate inheritance enums