Spring Boot+Ext JS下拉框仅显示20条数据排查求助
问题排查与解决方案
针对你遇到的下拉框仅显示20条数据(SQL带limit)的问题,从Spring Boot和Ext JS两端分别排查:
Spring Boot端排查
检查Spring Data JPA自动扫描规则
即使注释了@Repository,只要DeptCategory接口继承了JpaRepository,且处于@EnableJpaRepositories的扫描包路径下,Spring Data仍会自动为其生成代理实例并处理请求。可以:- 确认启动类的
@EnableJpaRepositories注解的basePackages是否包含该接口所在包 - 临时将该接口移到扫描路径外,验证是否还会生成带
limit的SQL
- 确认启动类的
全局分页配置检查
查看application.properties/application.yml中是否存在默认分页配置:spring.data.jpa.repositories.default-page-size=20如果有,直接修改为需要的数值(比如21)或者删除该配置。
父类/切面拦截检查
检查BaseJpaRepository是否封装了默认分页逻辑,或项目中是否存在AOP切面,对所有JPA查询方法自动添加分页参数。
Ext JS端排查(重点)
Ext JS的下拉框(ComboBox)或其绑定的Store默认会启用分页,默认pageSize为20,会自动向后端发送limit参数,Spring Boot接收到后会自动触发分页查询:
检查Store的分页配置
找到下拉框绑定的Store代码,查看是否设置了pageSize:Ext.define('MyApp.store.CategoryStore', { extend: 'Ext.data.Store', pageSize: 20, // 这里可能是问题根源,修改为21或设为0禁用分页 proxy: { type: 'ajax', url: '/api/categories', reader: { type: 'json', rootProperty: 'items' } } });检查请求参数
打开浏览器开发者工具的Network面板,查看下拉框加载数据的请求,确认是否携带了limit=20的参数。如果是,说明分页逻辑由前端触发,修改Store的pageSize即可解决。下拉框的分页属性
部分版本的Ext JSComboBox会自动启用分页,可显式关闭:Ext.create('Ext.form.field.ComboBox', { store: categoryStore, queryMode: 'local', // 如果数据量小,可改为本地查询避免分页 // 或显式配置分页相关属性 pageSize: 21 });
内容的提问来源于stack exchange,提问作者JNRaj
相关产品推荐
相关产品推荐

