0

我对命名查询中的 JPA (EclipseLink 2.3.2) 和枚举有一个奇怪的问题。

我有一个命名查询:

SELECT f FROM FILES f WHERE (:dataType IS NULL OR f.dataType = :dataType)

这导致

Error compiling the query ... invalid enum equal expression, cannot compare enum value of type [com.example.DataTypeEnum} with a non enum value of type [java.lang.Object]

现在我想我可能会做一个无效的操作,但如果我尝试

SELECT f FROM FILES f WHERE (:dataType IS NULL)

或者

SELECT f FROM FILES f WHERE (f.dataType = :dataType)

甚至

SELECT f FROM FILES f WHERE (f.dataType = :dataType OR :dataType IS NULL)

查询编译并运行良好。(但显然不是预期的结果)。

有谁知道我做错了什么?

编辑:

我将我的实体注释为:

@Enumerated(EnumType.STRING)
public DataTypeEnum getDataType() {
    return dataType;
}
4

1 回答 1

1

这很奇怪。你用的是什么版本?你试过2.4吗?

于 2012-06-25T13:59:41.793 回答