1

私はそのようなクエリを持っています:

SELECT *
FROM MyTable mt
WHERE mt.firstCondition = :var1
AND mt.secondCondition = :var2

var1 は整数で、var2 は文字列です。-1を受け取った場合、var1の条件を破棄したい。したがって、var1 がゼロ以下の場合、クエリは次のようになります。

SELECT *
FROM MyTable mt
WHERE mt.secondCondition = :var2

NamedQuery でその変更を行うことはできますか?

4

2 に答える 2

3

Hibernate は起動時に名前付きクエリを解析します。これは、Hibernate がクエリを実行するたびに解析する必要がないため、パフォーマンスが向上します。だから私が言っているのは、名前付きクエリを動的に変更することはできないということです。可能であれば、その目的を無効にします。できることは、問題の名前付きクエリにいくつかの条件を配置して、ニーズに応えることです。ルイス LL が条件を提供したので、繰り返しません。

于 2013-07-04T20:29:14.750 に答える