Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IllegalArgumentException-名为[name]的参数不存在_Java_Hibernate_Jpa_Wicket - Fatal编程技术网

Java IllegalArgumentException-名为[name]的参数不存在

Java IllegalArgumentException-名为[name]的参数不存在,java,hibernate,jpa,wicket,Java,Hibernate,Jpa,Wicket,我对我的代码有以下查询: return Long.parseLong(getEntityManager().createQuery( "SELECT COUNT(a) FROM ApartmentExtraType a WHERE a.accommodation.id = :idacc AND (LOWER(a.name) LIKE :name)", Long.class) .setParameter("idacc", accommodation.getId()) .setParameter(

我对我的代码有以下查询:

return Long.parseLong(getEntityManager().createQuery(
"SELECT COUNT(a) FROM ApartmentExtraType a WHERE a.accommodation.id = :idacc AND (LOWER(a.name) LIKE :name)", 
Long.class)
.setParameter("idacc", accommodation.getId())
.setParameter("name", "%" + filterQuery.getFieldFilter("name").toString().toLowerCase() + "%")
getSingleResult().toString()); 
如果查询未找到任何元素,则我没有问题,但如果它至少找到一个元素,则我有以下错误:

Last cause: Parameter with that name [name] did not exist WicketMessage: Error attaching this container for rendering: 
[WebMarkupContainer [Component id = tbody]]

相对列的名称是“name”,我敢肯定。其他查询似乎与此查询相同,并且工作正常。我不知道哪一个是问题

看起来问题不在于列名,而在于您传入的名为“name”的参数。“idacc”一个看起来是正确抓取的

所以这部分不起作用

filterQuery.getFieldFilter(“名称”).toString().toLowerCase()

试着传入一个字符串,看看它是否像

.setParameter(“名称”、“示例名称”)


如果运行正常,则说明我解决的
getFieldFilter
函数有问题。问题在于,查询由不同的方法组成,因为它根据用户的输入而变化,并且在其中一种方法中,变量的实例化很糟糕。因此JVM没有找到带有[name]参数的查询部分

我控制了问题是否出在getFieldFilter上,但我不这么认为,因为syste.out打印的字符串是正确的。