我对我的代码有一个查询:
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"而且我确定。其他查询似乎与此相同,并且它们工作正常。我不知道哪个是问题
答案 0 :(得分:0)
看起来问题不在于您传入的名为“name”的参数的列名。 “idacc”看起来像是被正确抓住了。
所以这部分不起作用
filterQuery.getFieldFilter("name").toString().toLowerCase()
尝试传入一个字符串,看看它是否与
类似
.setParameter("name", "ExampleName");
如果运行正常,则getFieldFilter
函数
答案 1 :(得分:0)