我将Spring Data 与REST结合使用。我有一个表country和一个与之对应的名为www.example.com的实体Country.java
我在CountryRepositopry中将我的方法注解为
public interface CountryRepository extends Repository<Country, Short> {
@RestResource(path = "bycode3")
@Query("select c from Country c where c.codeAlpha3=?1 and c.active=1")
Country findCountryByCodeAlpha3(@Param("code") String countryCode);
}
启动tomcat时出现以下异常-
Caused by: java.lang.IllegalStateException: Using named parameters for method public abstract com.persistence.entity.common.Country com.persistence.repository.CountryRepository.findCountryByCodeAlpha3(java.lang.String) but parameter 'code' not found in annotated query 'select c from Country c where c.codeAlpha3=?1 and c.active=1'!
5条答案
按热度按时间yzuktlbb1#
我修好了
查询需要修改为
应该是**:code而不是?1**
pkwftd7m2#
@Param("xxx")
中的文本xxx
必须在查询value
中使用。jdg4fx2g3#
只是对现有答案的补充
不要将“:code”之间的空格作为“:``代码”,否则将出现错误。
u5i3ibmn4#
如果使用@Param注解,则应使用与ur实体类参数相同的参数,并在“
(@Param("code") String countryCode)
“中使用相同的参数:据此,应该这样修改:
xxls0lw85#
您可以尝试这样做,但始终确保@Param(“code”)中的字符串值与要在查询中使用的命名变量值相同。