将表映射到多个子类

时间:2013-10-31 10:06:10

标签: java hibernate hibernate-mapping

我有一个表NOTE,它被映射到两个Java类UserNoteSaleNote

abstract class AbstractNote {}

class UserNote extends AbstractNote {}

class SaleNote extends AbstractNote {}

在我的hbm文件AbstractNote中,我使用了discriminator值:

<discriminator column="NOTE_TYPE_CODE" type="string" force="true"/>

以及每个子类,在hbm文件中:discriminator-value="USER"discriminator-value="SALE"

我的问题是,是否有可能有一个映射所有笔记的通用课程?

1 个答案:

答案 0 :(得分:0)

如果你的数据库只有NOTE表,只有一个实体映射整个表就很简单......只需实现一个具体的类Note并将NOTE_TYPE_CODE映射为属性而不是鉴别

@Entity
public class Note 
{
    @Column(name = "NOTE_TYPE_CODE")
    private String noteTypeCode;

    ... other columns/properties/joins/collections ...

    public String getNoteTypeCode()
    {
        return noteTypeCode;
    }

    public void setNoteTypeCode(String noteTypeCode)
    {
        this.noteTypeCode = noteTypeCode;
    }

    ... other getters/setters ...
}