5

我有一个Entitywithenum属性和一对 on NamedQueries。其中之一NamedQueries具有enum属性作为参数,即

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

当我尝试运行查询时,出现以下错误;

Caused by: java.lang.IllegalArgumentException: You have attempted to set a value of type class my.package.Status for parameter status with expected type of class my.package.Status from query string SELECT m FROM Message m WHERE m.status = :status.

我正在使用 Toplink

这怎么样?我怎样才能让 JPA 开心?

4

2 回答 2

2

枚举对象可以像任何其他对象一样用作查询参数。但是,您的查询可能应该是:

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

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

于 2010-05-12T13:26:54.480 回答
0

这是一个错误:Bug Comparing Enum with Bindingparameter。我改变了参数并执行了查询。

于 2010-05-12T14:10:10.030 回答