我有一个 Entity
,它有一个 enum
属性和一对 NamedQueries
。其中一个 NamedQueries
具有 enum
属性作为参数,即
SELECT m FROM Message m WHERE m.status = :status
当我尝试运行查询时,出现以下错误;
Caused by: java.lang.IllegalArgumentException: 您已尝试为参数状态设置类型为 my.package.Status 的值,其预期类型为 my.package.Status 来自查询字符串 SELECT m FROM Message m WHERE m.status = :status.
我正在使用 Toplink
这是怎么回事?我怎样才能让 JPA 开心?
最佳答案
枚举对象可以像任何其他对象一样用作查询参数。然而,您查询可能应该是:
SELECT m FROM Message m WHERE m.status = :status
另外 - 在实体定义中添加了@Enumerated?
关于java - 如何在 JPA 中使用 Enum 作为 NamedQuery 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2819131/