gpt4 book ai didi

hibernate - 具有该名称 [userName] 的参数不存在

转载 作者:行者123 更新时间:2023-12-03 20:34:04 27 4
gpt4 key购买 nike

我有这个 Hibernate/JPA 代码:

List<User> users = getEntityManager().createQuery("from com.xxx.xxx.persistence.model.User where name    = :userName")
.setParameter("userName", name.toLowerCase())
.getResultList();

但我收到此异常:
 java.lang.IllegalArgumentException: Parameter with that name [userName] did not exist
at org.hibernate.jpa.spi.BaseQueryImpl.findParameterRegistration(BaseQueryImpl.java:487)
at org.hibernate.jpa.spi.BaseQueryImpl.setParameter(BaseQueryImpl.java:638)
at org.hibernate.jpa.spi.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:163)
at org.hibernate.jpa.spi.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:32)

如果我在 SQL 中对 userName 进行硬编码,删除 setParamter,它就可以工作。怎么了?

最佳答案

对于寻找其他解决方案的人,请检查您是否没有在参数后放置分号(例如,如果您复制 native 查询)。

例子:

Query query = getEm().createNativeQuery("Select * from a where a.id = :id;");
query.setParameter("id", 1);

这行不通,因为它会查找参数“id”,但您的实际参数名称是“id;”。

关于hibernate - 具有该名称 [userName] 的参数不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36785401/

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