Enums JPA@枚举错误

Enums JPA@枚举错误,enums,eclipselink,Enums,Eclipselink,我有一个实体,其字段我想成为枚举 @Column(name = "TEMPRATURE_ZONE") @Enumerated(STRING) private TemperatureRegime tempratureZone; 枚举的定义如下: public enum TemperatureRegime { AMBIENT, CHILL } 我的表中此字段的数据始终为“AMBIENT”或“CHILL”,但当我对该表执行findAll查询时,会出现以下异常: Exception

我有一个实体,其字段我想成为枚举

@Column(name = "TEMPRATURE_ZONE")
@Enumerated(STRING)
private TemperatureRegime tempratureZone;
枚举的定义如下:

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)])
我看不出有什么问题,有什么想法吗

干杯


詹姆斯

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

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


道格

命名选择:
TemperatureRegime
(我指的是“体制”)可能不是你想要的。正确服用
TemperatureZone
TemperatureRegion
。当然,这并不能回答您的问题,但会让您的代码更清楚地了解枚举的全部内容,并且适当地说,缓和的制度并不是您的意思……此外,我建议您使用enum检查DB中的数据映射。我也遇到过同样的问题,原因是我试图从数据库中获取的枚举字段丢失了。