DAO类中返回的子集:
List<Map<String, Object>> agreements = getJdbcTemplate().queryForList(sqlForDataQuery.toString(), paramsForList.toArray());
预计会被排序,但在调试模式下,应用程序返回错误的子集 - 它没有排序。
另一方面,如果要在Oracle Sql Developer中使用所有sqlForDataQuery
执行paramsForList
,则会返回预期已排序的正确子集。
sqlForDataQuery
运行时值:
SELECT * FROM (SELECT t1.*, ROWNUM rn FROM (SELECT /*+ CHOOSE */ DISTINCT a.avtalenavn, a.kunde_id, a.aktivdato, a.bank_id, a.avtalestatus_id, a.produkt_id, a.avtale_id, p.navn, k.foretaksnr, k.navn AS KUNDENAVN FROM es.avtale a, es.avtale_konto ak, es.kunde k, es.produkt p WHERE a.bank_id = ? AND ak.avtale_id = a.avtale_id AND a.kunde_id = k.kunde_id AND UPPER(a.avtalenavn) LIKE UPPER(('%' || ? || '%')) AND a.produkt_id = p.produkt_id ORDER BY ? ) t1 ) WHERE rn BETWEEN ? AND ?
paramsForList
运行时值:
4210, a, AVTALE_ID, 1, 5
看起来查询执行不正确,但没有抛出异常。
你对问题范围有什么了解吗?
谢谢。