Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JPA中使用Enum作为NamedQuery参数_Java_Jpa_Jakarta Ee_Toplink - Fatal编程技术网

Java 如何在JPA中使用Enum作为NamedQuery参数

Java 如何在JPA中使用Enum作为NamedQuery参数,java,jpa,jakarta-ee,toplink,Java,Jpa,Jakarta Ee,Toplink,我有一个实体,带有枚举属性和一对命名查询。其中一个namedquerys具有enum属性作为参数,即 从消息m中选择m,其中m.status=:status 当我尝试查询时,我得到以下错误 原因:java.lang.IllegalArgumentException:您试图为参数状态设置一个类型为my.package.Status的值,该参数状态的类型应为my.package.Status,从查询字符串中选择m,其中m.Status=:Status。 我正在使用Toplink 这是怎么回事?如何让

我有一个
实体
,带有
枚举
属性和一对
命名查询
。其中一个
namedquerys
具有
enum
属性作为参数,即

从消息m中选择m,其中m.status=:status

当我尝试查询时,我得到以下错误

原因:java.lang.IllegalArgumentException:您试图为参数状态设置一个类型为my.package.Status的值,该参数状态的类型应为my.package.Status,从查询字符串中选择m,其中m.Status=:Status。

我正在使用Toplink


这是怎么回事?如何让JPA满意?

枚举对象可以像其他对象一样用作查询参数。但是,您可能需要:

SELECT m FROM Message m WHERE m.status = :status

另外-是否在实体定义中添加了@Enumerated?

这是一个错误:。我仔细研究了参数,然后执行了查询。

这是一个问题的输入错误,正如您所指出的,查询是@EnumeratedType,您的意思是@Enumerated,是的,我使用的是always hibernate,而不是TopLink/EclipseLink-也许这是一些错误…看起来类似于