当前位置: 首页 > 面试题库 >

设置JPA Pageable对象的默认页面大小

庄经国
2023-03-14
问题内容

我有一个PagingandSorting存储库,该存储库具有接受可分页对象的方法。我还有一个控制器,可以通过URL接受可分页的对象。

我的用例是,如果用户在URL中指定页面大小参数,则我必须为可分页对象使用该值。如果他不提及,则采用默认值50。

但是可分页对象现在默认为20。

任何建议都会有所帮助


问题答案:

如果你正在谈论Spring Data PagingAndSortingRepository,则可以通过使用@PageableDefaulton Controller方法来设置默认页面大小,如下所示:

public String listClients(@ModelAttribute FilterForm form, Model model, WebRequest request, @PageableDefault(sort = { "surname",
            "forename", "address.town" }, value = 50) Pageable pageable) {

    }

或者,你可以在Spring配置中使用以下命令配置全局默认值,如下所示在XML和Java配置中。

请注意,较新版本的Spring Data使用基于零的页面索引,而较旧版本的第一页使用1。如果你的UI分页库期望首页为1,则可以将oneIndexedParameters属性设置为true

  • public void setOneIndexedParameters(boolean oneIndexedParameters)

配置是否在请求参数中公开并假定基于1的页码索引。默认为false,表示请求中的页数0等于第一页。如果将其设置为true,则请求中的页码1将被视为第一页。

参数:oneIndexedParameters-要设置的oneIndexedParameters

  • public void setFallbackPageable(Pageable fallbackPageable)

如果在要解析的方法参数上找不到PageableDefault或PageableDefaults(后者仅在旧版模式下受支持),则将Pageable配置为用作回退。如果将其设置为null,请注意,如果在请求中找不到Pageable数据,则控制器方法将被空值处理。请注意,这样做将需要你向bot提供页面和size参数以及请求,因为任何可用参数都没有默认值。

参数:fallbackPageable-用作常规回退的Pageable。

在XML中,如下所示:

<mvc:annotation-driven>
    <mvc:argument-resolvers>
        <bean class="org.springframework.data.web.PageableHandlerMethodArgumentResolver">
            <property name="oneIndexedParameters" value="true"/>
            <property name="fallbackPageable">
                <bean class="org.springframework.data.domain.PageRequest">
                    <constructor-arg name="page" value="1" />
                    <constructor-arg name="size" value="10" />
                </bean>
            </property>
        </bean>
    </mvc:argument-resolvers>
</mvc:annotation-driven>

在Java Config中,如下所示:

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {


    @Override
    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
        PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
        resolver.setOneIndexedParameters(true);
        resolver.setFallbackPageable(new PageRequest(1, 20));
        argumentResolvers.add(resolver);
        super.addArgumentResolvers(argumentResolvers);
    }
}


 类似资料:
  • 问题内容: 有没有一种方法可以设置javascript对象的默认属性,例如: IE可以忽略,Chrome Frame减轻了我的头痛。 问题答案: 自从几年前我问这个问题以来,事情进展顺利。 代理是ES6的一部分。以下示例可在Chrome,Firefox,Safari和Edge中运行:

  • 我正在使用iTextSharp创建一个新的pdf文件。pdf将包含一个标题和一个pdf表格。生成的pdf文件的文件大小应该尽可能小,所以我使用默认字体(Helvetica,12pt)。有没有办法将默认字体大小从12pt更改为8pt。 我知道我可以为每个pdf表格单元格设置字体。 但是是否可以为整个文档/表格设置默认字体大小,这样我就不需要为每个表格单元格额外设置字体了? (我在谷歌上搜索了这个话题

  • 本文向大家介绍Android7.0 MTK设置默认桌面,包括了Android7.0 MTK设置默认桌面的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android7.0 MTK设置默认桌面的具体代码,供大家参考,具体内容如下 项目需求:客户安装自己公司的桌面apk,安装完成后自动设置为默认桌面且不弹出始终和仅一次的弹框 1.找到安装应用的文件 2.由于设置默认桌面时,是在Setti

  • 我是测试自动化的初学者,尝试学习硒。 我用C#实现了selenium Chrome Webdriver的自动化 多谢了。

  • 什么是Locale Locale是一组描述世界上某一特定区域文本格式和语言习惯的设置的集合。locale名通常由三个部分组成:第一部分,是一个强制性的,表示语言的缩写,例如"en"表示英文或"zh"表示中文。第二部分,跟在一个下划线之后,是一个可选的国家说明符,用于区分讲同一种语言的不同国家,例如"en_US"表示美国英语,而"en_UK"表示英国英语。最后一部分,跟在一个句点之后,是可选的字符集

  • 我在Thymeleaf模板中的样式标记内设置CSS字体变量。字体值来自模型对象。我还想应用默认颜色,以防模型attirbute不存在。我使用elvis运算符选择默认值elvis运算符链接 但是当我呈现模板时,它会搜索brandingConfig,然后是themeConfig,然后是fontName,但fontName在themeConfig中不存在。因此,它不会选择默认值,而是抛出一个错误。下面是