Spring Data JPA返回错误的结果



我正在用Spring Boot测试Spring Data JPA,使用hibernate内核5.4.2.最终版本。

例如,我有一个包含地址和其他列的Users表。

此表的存储库界面如下所示。

public interface UsersRepository extends JpaRepository<Users, Integer> {
List<Users> findByAddressContaining(String keyword)
}

据我所知,如果我像以前那样命名该方法,将执行下面的查询。

SELECT * FROM Users u WHERE address LIKE '%keyword%';

问题是,这种部分有效。

例如,在users表中有两个数据,每个数据的地址为"0";abc";以及";cde";。

如果我测试findByAddressContaing("abc"),则List<>的结果大小为2。紧接着,如果我运行findByAddressContaining("de"),结果应该是1,但它是2。如果我再次运行相同的方法findByAddressContaining("de"),则结果变为1。

我找不到解决这个问题的方法。任何建议都会很有帮助。:(


问题不在于Spring Data JPA,而在于Request Parameter

这是我的控制器方法。

@GetMapping("/v2/warehouses")
public void getAllWarehouses(@RequestParam(name = "address") String address,
@RequestParam(name = "limit") Integer limit,
@RequestParam(name = "offset") Integer offset,
HttpServletResponse response) {

System.err.println("Request Param Address : " + address");

如果我使用Postman将请求发送到正确的路径,有时地址会为空。("(

这种情况正常发生吗??

所以基本问题不在于@RequestParam注释,而在于application.properties文件。

在我将server.tomcat.uri-encoding=UTF-8添加到属性文件后,该错误不再发生。

谢谢!

相关内容

  • 没有找到相关文章

最新更新