EclipseLink 找不到我的 Converter 类

Posted

技术标签:

【中文标题】EclipseLink 找不到我的 Converter 类【英文标题】:EclipseLink does not find my Converter class 【发布时间】:2013-05-09 10:53:05 【问题描述】:

我有一个使用 @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 持久性服务 - 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】:

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

尝试一个类,如果仍然不成功,请包含完整的异常堆栈跟踪(包括由引起的)。

【讨论】:

非常感谢。你说的对。转换器不能是枚举(无论出于何种原因)。

以上是关于EclipseLink 找不到我的 Converter 类的主要内容,如果未能解决你的问题,请参考以下文章

EclipseLink JPA NamedQuery 在 Set 类型的字段中找不到 .size 属性

JavaEE + eclipseLink + TomEE 给出 java.sql.SQLSyntaxErrorException: 用户缺少权限或找不到对象

RMagick 安装:找不到 MagickWand.h

Convert.ToDecimal 引发的意外异常

sh:转换:在 spyder 上找不到命令

没有这样的包'苗条':找不到BUILD文件 - Tensorflow