属性依赖和JPA

时间:2012-10-19 11:17:32

标签: jpa properties dependencies

我必须对情况进行建模,其中我有一个实体,它可以是四个值中的一个,这四个状态中的两个可以有额外的注释。

我的第一个想法是定义一个类,它有两个成员字段,一个作为Enum,一个作为String。 Enum有四个要素。但我也必须建模约束,只有在值2和3上才可以设置注释。

你会如何建模? JPA上有四个不同的实体和继承?或者像上面的Enum例子一样?

非常感谢 安德烈

1 个答案:

答案 0 :(得分:0)

是的,你的解决方案没问题。只需像这样实现setter:

public void setComment(String comment) {
    if (state != State.STATE1 && state != State.STATE2) {
        throw new IllegalStateException("A comment can't be set when the state is " + state);
    }
}

使用继承不是一个好主意:当一个实体具有给定类型时,它不能成为其他类型。因此,使用继承策略无法改变状态。