EclipseLink找不到我的Converter类

时间:2013-05-09 10:53:06

标签: jpa eclipselink converter

我有一个JPA @Entity' RecipestepBO'它使用@Converter:

@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异常:

线程中的异常" main" javax.persistence.PersistenceException:Exception [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文件中编写的。转换器'单元'不是(因为它不是一个实体)。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

转换器应该是一个类,而不是枚举,不确定枚举是否有效或有意义。

尝试一个类,如果还不运气,请包含完整的异常堆栈跟踪(包括由此引起的)。