2

クエリ パラメーターを使用して、名前付きクエリでテーブル (オブジェクト)、列名、または式を指定できますか?

たとえば、オブジェクト全体を選択するか、カウントだけを選択するかを切り替えることができる単一のクエリを使用したいと考えています。

select :param1
from TablePO t
where t.id = :param2

そして、次のように Java でパラメータを設定します。

query.setParameter("param1", "t");
query.setParameter("param2", "2");

param1のような設定でコピペを避けたい

query.setParameter("param1", "t");

また

query.setParameter("param1", "count(t)");
4

1 に答える 1

4

いいえ、できません。最終的に、HQL パラメーターは JDBC 準備済みステートメントのパラメーターになり、準備済みステートメントでそれを行うことはできません。パラメータは値を保持しますが、クエリの任意の部分ではありません。データベースは、パラメーター化されたクエリに基づいてクエリ プランを計算できる必要があります。実行したいことが許可されている場合、それは不可能です。

ところで、試してみたら、自分で見つけたでしょう。

于 2012-05-17T18:23:47.427 に答える