次のように、クエリで異なるパラメーターを使用して複数回実行するカスタム関数があります。
select
my_function(input.pt, false),
my_function(input.pt, true)
from (select st_geomfromewkt('SRID=1;POINT(151.2836 -33.7859484007395)') as pt) as input;
java/hibernate の外で実行すると、これは問題なく実行され、2 つの異なる値が返されます。
1, 2
ただし、休止状態の SQLQuery を介してまったく同じパラメーターでまったく同じクエリを呼び出すと、最初の結果が 2 回得られます。
SQLQuery qry = session.createSQLQuery("SELECT "//
+ " my_function(input.pt, false)," //
+ " my_function(input.pt, true)" //
+ " FROM (SELECT st_geomfromewkt(:point) AS pt) AS input;");
qry.setString("point", "SRID=1;POINT(151.2836 -33.7859484007395)");
Object[] result = (Object[]) qry.uniqueResult();
結果:
[1, 1]
同じデータベースとスキーマに対して実行していることを再確認しました。
何か案は?