带JPA的参数化实体

时间:2014-11-04 10:37:06

标签: java hibernate 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实体,我怎么能实现它,因为value(s)可以是各种类型(Double,String,Boolean等)?

这不起作用:

public class ParameterValue  {


 private Object value;

}

引起:org.hibernate.MappingException:属性映射列数错误:br.entity.admin.ParameterValue.value类型:object“}}

1 个答案:

答案 0 :(得分:0)

这取决于数据库中的列。 例如,如果您在enum中使用MySQL。它可以是:

@Enumerated(EnumType.STRING)
private ParameterType type;

其中ParameterValue

public enum ParameterValue  {
   Text, Value, Boolean
}