如何在JPA中映射动态关系

时间:2011-08-18 08:58:43

标签: java jpa

我有一个实体来持有选择域,例如对于下拉框:

@Entity
public class Selection {
    @Id
    private long id;

    private String category;
    private long index;
    private String text;
}

相应的表格包含多个类别的条目:

ID    Category   Index   Text
-----------------------------------
1     Status     1       New
2     Status     2       Active
3     Status     3       Obsolete
4     Type       1       Simple
5     Type       2       Complex
[...]

现在我有实体应该映射选择的特殊类别:

@Entity
public class EntityWithStatus {
    @Id
    private long id;

    @JoinColumn(name="status_id", referencedColumnName="index", nullable=false)
    private Selection status;
}

状态“新建”具有索引1,但此索引也适用于“简单”类型。我不想映射到Selection的主键。有没有办法将此映射限制为特定类别?

我找到的一种方法是使用继承,使用类别作为鉴别器。但这意味着我必须为每个类别添加实体/类。我想阻止那个...

0 个答案:

没有答案