與JPA

2014-11-04 84 views
0

我想創建參數化的業務規則值的實體參數化實體,我想到了什麼樣的名稱,類型和值(S),例如:與JPA

名:在價格進口產品

類型:值(雙人間)

值:20

這將在規則中使用添加20%的進口產品的價格。但是我有幾個值爲String,Boolean或多值的情況。 我認爲是這樣的:

@NotEmpty 
private String name; 

//Enum with possible types (Text, Value, Boolean, etc) 
@Enumerated(EnumType.STRING) 
@Enumeration(enumClass = ParameterType.class) 
private ParameterType type; 

@OneToMany(mappedBy = "value") 
private List<ParameterValue> values; 

的實體的parameterValue,我怎麼能實現它,因爲值(S)可以是各種類型的(雙,字符串,布爾值,等等)?

這不作品:

public class ParameterValue { 


private Object value; 

} 

產生的原因:org.hibernate.MappingException:屬性映射有錯誤的列數:br.entity.admin.ParameterValue.value類型:對象「}}

回答

0

這取決於你列在數據庫 例如,如果你使用MySQLenum它可以是:。

@Enumerated(EnumType.STRING) 
private ParameterType type; 

WH ERE ParameterValue

public enum ParameterValue { 
    Text, Value, Boolean 
} 
+0

的parameterValue將有一列來記錄像20或真或「一些文本」,等等,而不是枚舉值的值。我想我的問題並不清楚,對不起。 A可以使用VARCHAR並轉換該值,但我正在尋找更好的東西。 – Claudinei 2014-11-04 12:44:02