You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在application.properties中配置H2 2.1.x的Limit模式?

解决H2 2.1.x版本分页Limit语法错误问题
  • 调整H2连接URL参数,在spring.datasource.url中追加兼容配置:

    spring.datasource.url=jdbc:h2:mem:testdb;MODE=MSSQLSERVER;LEGACY_LIMIT_ORDER=TRUE;DEFAULT_NULL_ORDERING=HIGH
    

    H2 2.1.x对Limit子句的语法校验逻辑做了收紧,LEGACY_LIMIT_ORDER=TRUE会恢复旧版本的Limit排序兼容规则,解决limit ?相关的语法报错。

  • 指定Hibernate适配方言,在application.properties中添加:

    spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServerDialect
    

    由于你已设置H2的MSSQLSERVER兼容模式,匹配对应的Hibernate方言能确保生成的分页SQL和H2的兼容语法一致。

  • 确保分页逻辑使用Spring Data JPA标准API:
    避免手动拼接Limit语句,直接通过Pageable参数实现分页,示例:

    Page<YourEntity> findByYourCondition(String condition, Pageable pageable);
    

    这种方式会由Hibernate根据配置自动生成适配的分页SQL,减少兼容性问题。

内容的提问来源于stack exchange,提问作者Sushmithaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 17:39:24