Hibernate'无表'枚举映射?

时间:2009-08-05 23:26:48

标签: java database hibernate inheritance enums

我正在处理以下情况:

我们使用table-per-subclass inheritance,这意味着具体表的主键是 abstract 表上的外键引用。超类是产品,子类是图书 DVD AudioCD ,...

现在在Java超类中,比如Product.java,我们有enum种产品类型:book,dvd,music等。

我们在抽象表中没有鉴别器列,也没有类型的额外表。

是否可以将enum中的类型 Product.java映射到正确的值,具体取决于具体对象?或者是必要的鉴别者或额外的表?

...... ....

表每子类继承映射摘录:

 <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部分......

1 个答案:

答案 0 :(得分:4)

我可能会遗漏一些东西,但为什么你会将Type作为一个字段?在getType()中创建Product抽象,并在子类中实现它以返回适当的值。