gpt4 book ai didi

java - 无法找到命名参数

转载 作者:行者123 更新时间:2023-12-02 05:01:34 25 4
gpt4 key购买 nike

我无法理解为什么 hibernate 没有找到下面查询的参数“setor”。

hql.append("select top :limite * from MA3OCORT oco,MA4DETOT ocodA " +
" where MA4IDOCO=ma3idoco " +
" and ocodA.MA4IDODE in (select max(ocodB.MA4IDODE) from MA4DETOT ocodB where ocodA.MA4IDOCO=ocodB.MA4IDOCO and ocodB.MA4IDSIT=:situacao)" +
" and (oco.MA3DSSOL like :solicitante or :solicitante is null)" +
" and (ocodA.MA4DTDET between :datai and :dataf or :dataf is null)" +
" and ocodA.MA4IDSET = :setor" +
"order by ocodA.MA4DTDET desc");

return em.createNativeQuery(hql.toString(), OcorrenciaDetalhe.class)
.setParameter("situacao", situacao)
.setParameter("solicitante", "%" + solicitanteFiltro + "%")
.setParameter("datai", dataRespostaFiltro1)
.setParameter("dataf", dataRespostaFiltro2)
.setParameter("setor", usuarioLogado.getSetor().getId())
.setParameter("limite", limit).getResultList();

最佳答案

因为select中有语法错误

这个

"   and ocodA.MA4IDSET = :setor" +
"order by ocodA.MA4DTDET desc");

变成了

'   and ocodA.MA4IDSET = :setororder by ocodA.MA4DTDET desc'

您需要在:setor之后或order之前添加一个空白字符。

关于java - 无法找到命名参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28235798/

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