2013-05-09 3 views
0

У меня есть JPA @Entity «RecipestepBO», который использует @Converter:EclipseLink не находит мой конвертер класс

@Entity 
@Converter(name="UnitConverter", converterClass=com.lemcke.share.recipe.Unit.class) 
@Table(name = "recipestep") 
public class RecipestepBO { 
... 
private Unit rpsunit = null; 
... 
@Column(name="rpsunit") 
@Convert("UnitConverter") 
public Unit getRpsunit() { return rpsunit; } 
... 
} 

и класс преобразователя (который на самом деле перечисление) в том же пакете:

package com.lemcke.share.recipe; 

public enum Unit implements Converter { 
Liter ("l") 
.... 
all overloaded methods from the Converter 
.... 
} 

Начиная результаты применения в следующем за исключением EclipseLink:

исключение в потоке "основного" javax.persistence.PersistenceException: исключение [EclipseLink-28019] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.EntityManagerSetupException Исключение Описание: Не удалось выполнить установку PersistenceUnit [testPU]. Закройте все заводы для этого PersistenceUnit. Внутреннее исключение: исключение [EclipseLink-7198] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.ValidationException Исключение Описание: Класс: [com.lemcke.share.recipe.Unit] не был найден при преобразовании из классов в классы.

Сущность написана в файле persistence.xml. Преобразователь 'Unit' не является (потому что его не является сущностью).

Что я делаю неправильно?

ответ

1

Конвертер должен быть классом, а не перечислением, не уверен, что перечисление будет работать или иметь смысл.

Попробуйте класс, и если все еще не удача, включите полную трассировку стека исключений (в том числе вызванные).

+0

Большое спасибо. Ты прав. Преобразователь НЕ МОЖЕТ быть перечислением (по какой-либо причине). –

Смежные вопросы