gpt4 book ai didi

java - queryForList返回的子集不正确,但在SQL Developer中执行却没问题

转载 作者:行者123 更新时间:2023-12-01 15:51:14 25 4
gpt4 key购买 nike

DAO 类中返回的子集:

List<Map<String, Object>> agreements = getJdbcTemplate().queryForList(sqlForDataQuery.toString(), paramsForList.toArray());

它应该被排序,但在 Debug模式下应用程序返回不正确的子集 - 它没有排序。

另一方面,如果在 Oracle Sql Developer 中使用所有 paramsForList 执行 sqlForDataQuery,则返回预期排序的正确子集。

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

看起来查询执行不正确,但没有抛出异常。

您知道问题范围吗?

谢谢。

最佳答案

看看this

简短的故事:您不能使用参数作为在PreparedStatement 中进行排序的列,并且 jdbcTemplate 在幕后使用准备好的语句。

关于java - queryForList返回的子集不正确,但在SQL Developer中执行却没问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5990039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com