【问题标题】:Hibernate 'tableless' enum mapping?休眠“无表”枚举映射?
【发布时间】:2009-08-05 23:26:48
【问题描述】:

我正在处理以下场景:

我们使用table-per-subclass inheritance,这意味着具体表的主键是抽象表上的外键引用。超类是Product,子类是BookDVDAudioCD、...

现在在 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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2010-12-08
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      • 2017-05-28
      • 1970-01-01
      • 2015-03-04
      • 2010-10-18
      • 1970-01-01
      相关资源
      最近更新 更多