踩坑日记:java.lang.IllegalStateException: For queries with named parameters you need to use provide ...

发布时间 2023-08-04 15:58:26作者: 且行且思
今天的错误是这个:java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.
 

大致的意思是:对于带有命名参数的查询,需要为方法参数提供名称。使用@Param作为查询方法参数,或者在Java 8+上使用javac标志-parameters。

解决方案就是:你在使用sql的时候 Dao层,没有使用@Param进行参数 参数命名。

问题二:

错误解析:

明显能看出来,这个错误是因为hql这里和@Param的原因导致的错误,错误提示hql中的字段值应该使用@Param()注解标志的字段。

但是上面的代码中明明已经使用了呀。

解决问题:

最后发现问题在于,确实使用了@Param注解,但是却引错了架包。

对于hql和代码无需任何的改动,只需要将import更改即可

import org.springframework.data.repository.query.Param;