我们在多个服务器(DEV,QA和PROD)上运行Spring Boot App。我们使用JPA Repository体系结构来实现对数据库的访问。一切都运行良好,然后我们找到了一些毫无意义的东西。
我们使用以下网址:
PRODURL:9090/locations/search/findByStreetNumberStartingWithAndApartmentNumberStartingWithAndStreetNameStartingWithAndZipCode_CityStartingWithAndZipCode_StateProvStartingWithAndZipCode_ZipCodeStartingWithAndCompany_NameStartingWith?stNumber=100&aptNumber=&street=N%20College&city=&state=&zip=&company=BREV&page=3&size=20&sort=streetNumber&projection=detail
它指向7页的位置 - 每个位置都有相同的街道号码;他们因公寓号而异。
在PROD中,
page = 0返回项目1,2,3,... 19,20。
page = 1返回项目21,20,19 ... 3,2。
Page = 2返回41,42 ... 59,60。
Page = 3和page = 4返回与page = 1和
相同的内容page = 5或6返回正确的数据。
部署到PROD的完全相同的代码会在每个页面上返回正确的数据。
在DEV中,几乎相同的代码在页面= 1上给出与PROD相同的错误;其他页面都是正确的。
问题:Spring Data或JPA存储库中是否存在错误?这些结果是可重复的。是否与对不变的变量进行排序有关? (这并不能解释为什么相同的代码在部署到不同的服务器时的工作方式不同。)
更新:去排序= streetNumber,aptNumber似乎给了我们正确答案。是的,每个部署的版本都会访问独立的数据库,但两天前所有三个数据库都已同步。