JPA @Enumerated错误

时间:2010-07-29 07:49:29

标签: enums eclipselink

我有一个实体,我想成为一个Enum。

@Column(name = "TEMPRATURE_ZONE")
@Enumerated(STRING)
private TemperatureRegime tempratureZone;

Enum的定义如下:

public enum TemperatureRegime {
    AMBIENT,
    CHILL
}

我在这个字段的表格中的数据总是“AMBIENT”或“CHILL”但是当我在表格上执行findAll查询时,我得到以下异常:

Exception [EclipseLink-116] (Eclipse Persistence Services - 2.1.0.v20100614-r7608): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: No conversion value provided for the value [Chill] in field [LOCATION_GROUP.TEMPRATURE_ZONE].
Mapping: org.eclipse.persistence.mappings.DirectToFieldMapping[tempratureZone-->LOCATION_GROUP.TEMPRATURE_ZONE]
Descriptor: RelationalDescriptor(com.company.location.LocationGroup --> [DatabaseTable(LOCATION_GROUP)])

我看不出问题是什么,有什么想法吗?

干杯,

詹姆斯

1 个答案:

答案 0 :(得分:7)

我认为这只是一个案例问题。当数据库值为Chill时,您的枚举定义CHILL。最简单的解决方案应该是更改枚举定义以匹配数据库值。

或者,我记录了一种转换器方法来处理与枚举值不完全匹配的数据库字符串:

http://wiki.eclipse.org/EclipseLink/Examples/JPA/EnumToCode

道格