JPA @ Ошибка нумерации - PullRequest
       3

JPA @ Ошибка нумерации

2 голосов
/ 29 июля 2010

У меня есть сущность с полем, которым я хочу стать 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 Ответ

7 голосов
/ 29 июля 2010

Я считаю, что это просто вопрос дела. Ваше перечисление определяет CHILL, в то время как значение базы данных - Chill. Самое простое решение должно состоять в том, чтобы изменить определение перечисления для соответствия значениям базы данных.

В качестве альтернативы я задокументировал подход конвертера для обработки строк базы данных, не соответствующих точно значениям перечисления:

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

Doug

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...