您好我试图覆盖Spring JPA中页面大小的默认参数名称,以匹配需要使用的Kendo UI网格
http://localhost:8080/retailers/all?page=1&pageSize=5
JPA正在制作
http://localhost:8080/retailers/all?page=1&size=5
我尝试过添加
spring.data.rest.page-param-name=page
spring.data.rest.limitParamName=pageSize
应用程序属性,但它似乎对项目没有任何影响。
我的控制器看起来像这样
@RequestMapping(method = RequestMethod.GET, value = "retailers/all")
public ResponseEntity<Page<RetailerEntity>> retailers(Pageable pageable){
Page<RetailerEntity> retailers = retailerService.getAllRetailers(pageable);
return new ResponseEntity<>(retailers, HttpStatus.OK);
}
并且存储库正在使用开箱即用的实现
public interface RetailerRepository extends PagingAndSortingRepository<RetailerEntity, Integer> {
}
感谢任何帮助。
答案 0 :(得分:0)
此问题可能与spring boot版本有关。 更改application.properties仅适用于Spring Boot 1.2+。 如果您使用的是1.1或更早版本,则有两种选择:
1)使用RepositoryRestConfigurer
的自定义实现创建RepositoryRestConfigurerAdapter
bean。
@Configuration
class CustomRestMvcConfiguration {
@Bean
public RepositoryRestConfigurer repositoryRestConfigurer() {
return new RepositoryRestConfigurerAdapter() {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.setBasePath("/api");
}
};
}
}
2)使用自定义实现RepositoryRestConfigurer
创建一个组件。
@Component
public class CustomizedRestMvcConfiguration extends RepositoryRestConfigurerAdapter {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.setBasePath("/api");
}
}
这些示例适用于basePath
属性,您可以以相同的方式更改所有其他属性。
您可以查看更多详细信息:the documentation