0
我必須模擬一個情況,我有一個實體可以是四個值之一,這四個狀態中的兩個可以有額外的評論。屬性依賴和JPA
我的第一個想法是定義一個類,它有兩個成員字段,一個是Enum,一個是String。 Enum有四個元素。但是我也必須建立一個約束模型,只能在值2和3上設置註釋。
你會怎樣建模? JPA有四種不同的實體和繼承?或者像上面的Enum例子那樣?
非常感謝 安德烈
我必須模擬一個情況,我有一個實體可以是四個值之一,這四個狀態中的兩個可以有額外的評論。屬性依賴和JPA
我的第一個想法是定義一個類,它有兩個成員字段,一個是Enum,一個是String。 Enum有四個元素。但是我也必須建立一個約束模型,只能在值2和3上設置註釋。
你會怎樣建模? JPA有四種不同的實體和繼承?或者像上面的Enum例子那樣?
非常感謝 安德烈
是的,你的解決方案是好的。只實現這樣的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);
}
}
使用繼承是不是一個好主意:當實體具有給定類型,它不能成爲其他東西。因此,通過繼承策略來改變狀態是不可能的。