2012-10-19 65 views
0

我必須模擬一個情況,我有一個實體可以是四個值之一,這四個狀態中的兩個可以有額外的評論。屬性依賴和JPA

我的第一個想法是定義一個類,它有兩個成員字段,一個是Enum,一個是String。 Enum有四個元素。但是我也必須建立一個約束模型,只能在值2和3上設置註釋。

你會怎樣建模? JPA有四種不同的實體和繼承?或者像上面的Enum例子那樣?

非常感謝 安德烈

回答

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

使用繼承是不是一個好主意:當實體具有給定類型,它不能成爲其他東西。因此,通過繼承策略來改變狀態是不可能的。