使用JPA执行NamedNativeQuery时,我收到以下错误消息,
java.lang.IllegalArgumentException: Parameter with that name [pymtRefNP] did not exist
at org.hibernate.jpa.spi.BaseQueryImpl.findParameterRegistration(BaseQueryImpl.java:486)
at org.hibernate.jpa.spi.BaseQueryImpl.setParameter(BaseQueryImpl.java:603)
at org.hibernate.jpa.spi.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:163)
at org.hibernate.jpa.spi.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:32).....
查询:
@NamedNativeQuery(name = "update", query = "UPDATE TX_XX_XXX SET CHQ_NO = :chqNoNP , STATUS_CODE = :statusCodeNP WHERE PYMT_REF = :pymtRefNP AND CUST_ID = :custIdNP AND COUNTRY_CODE = :countryCodeNP AND CITY_CODE = :cityCodeNP")
参数值:
paramValues.put("pymtRefNP", bean.getPymtRef());
paramValues.put("chqNoNP", bean.getChqNo());
paramValues.put("statusCodeNP", 65);
paramValues.put("custIdNP", bean.getCustId());
paramValues.put("countryCodeNP", bean.getCountryCode());
paramValues.put("cityCodeNP", bean.getCityCode());
我在最近两天用谷歌搜索了这个问题,但我没有得到任何明确的看法。 注意:我在sql编辑器中验证了这个查询,它运行得很好。 所以,任何人都会帮助我。
先谢谢。
答案 0 :(得分:0)
我也有这个问题。 要找出真正的问题,我将查询更改为不使用参数:
"UPDATE TX_XX_XXX SET CHQ_NO = " + variable + " WHERE PYMT_REF = " +
key + "";
在此之后,收到一条新消息,通知模型未映射。
修复模型包每件事都可以。