如何在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=HIGHH2 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
相关产品推荐
相关产品推荐

