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 に答える