0
私はむしろHQL
に新しく、カラムの1つに特定の値がある場合にフィルタを適用するために、WHERE
句をhqlクエリに追加しようとしています。私はCASE WHEN
ステートメントについて読んだことがありますが、それを使用しようとしていますが、明らかに私は間違っています。なぜなら、クエリで構文エラーが発生するからです。私が試した何HQL - カラムに基づく条件付きWHERE句
は以下の通りです:理想的
FROM myClass WHERE CASE WHEN col1 = :val1 THEN dtIns >= :dt1 ELSE true END
、私は何をしたいcol1
が特定の値を持っている場合にのみ、それ以外の場合は、私はすべてのフィルタを適用したくないフィルタdtIns >= :dt1
を適用しています。 サーバがで応答:
QuerySyntaxException: unexpected token: >=
誰もが私が間違ってやっているものを私に伝えることができますか?
はい、これは私の質問に投稿した特定のケースで動作します。しかし、私がCASE声明で間違っていたことを教えていただけますか?それはWHERE節でまったく使用できますか、もっと複雑なケースを構築したい場合は、ANDやORのようなブール演算子に完全に依存する必要がありますか? –
where節で 'CASE WHEN'を使うことはできません。 – dmitrievanthony
ありがとうございます。 –