我有一个使用 @Converter 的 JPA @Entity 'RecipestepBO':
@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 文件中。转换器“单位”不是(因为它不是实体)。
我究竟做错了什么?