0

我必须模拟一种情况,其中我有一个可以是四个值之一的实体,并且这四个状态中的两个可以有附加评论。

我的第一个想法是定义一个类,它有两个成员字段,一个是 Enum,一个是 String。枚举有四个元素。但我也必须对约束进行建模,即只能在值 2 和 3 上设置注释。

你会如何建模?JPA 上的四种不同实体和继承?还是像上面的枚举示例一样?

非常感谢安德烈

4

1 回答 1

0

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

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);
    }
}

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

于 2012-10-19T11:39:14.437 回答