我正在尝试创建一个实体来参数化业务规则的值,我想到了一些名称,类型和值,例如:
名称:添加导入产品的价格
类型:值(双倍)
价值: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实体,我怎么能实现它,因为value(s)可以是各种类型(Double,String,Boolean等)?
这不起作用:
public class ParameterValue {
private Object value;
}
引起:org.hibernate.MappingException:属性映射列数错误:br.entity.admin.ParameterValue.value类型:object“}}
答案 0 :(得分:0)
这取决于数据库中的列。
例如,如果您在enum
中使用MySQL
。它可以是:
@Enumerated(EnumType.STRING)
private ParameterType type;
其中ParameterValue
是
public enum ParameterValue {
Text, Value, Boolean
}