与JPA

2014-11-04 43 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