我有一个自定义函数,我在查询中使用不同的参数多次执行,如下所示:
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 之外运行时,它执行得很好,返回两个不同的值:
1, 2
但是,当我通过休眠 SQLQuery 调用具有完全相同参数的完全相同的查询时,我得到了两次第一个结果:
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]
我已经仔细检查过我正在针对相同的数据库和架构运行。
有任何想法吗?