如何通过Spring的application.properties配置EclipseLink相关属性
问题核心原因
Spring Boot 不会自动识别直接以eclipselink开头的配置项,所有需要传递给EclipseLink JPA实现的原生属性,都需要添加spring.jpa.properties.前缀才会被正确透传。你之前的配置没有加此前缀,所以完全没有被EclipseLink识别加载,无需依赖persistence.xml即可完成全部配置。
1. 日志配置(输出全量SQL、参数等调试信息)
无需依赖spring.jpa.show-sql(该配置是Spring通用的SQL打印实现,输出内容不全),直接通过EclipseLink原生日志配置即可,完整配置项如下:
# 透传给EclipseLink的日志配置 spring.jpa.properties.eclipselink.logging.level = ALL spring.jpa.properties.eclipselink.logging.parameters = true # 输出SQL绑定的参数值 spring.jpa.properties.eclipselink.logging.level.sql = FINE # 单独指定SQL日志级别,按需调整 # Logback日志级别放开EclipseLink相关日志输出 logging.level.org.eclipse.persistence = DEBUG
配置完成后可删除你之前写的spring.jpa.show-sql=true,避免重复打印SQL。
2. Batch-Writing批量写入配置
同样添加spring.jpa.properties.前缀即可生效:
spring.jpa.properties.eclipselink.jdbc.batch-writing = JDBC spring.jpa.properties.eclipselink.jdbc.batch-writing.size = 500 # 可选配置:开启参数绑定,进一步提升批量写入效率 spring.jpa.properties.eclipselink.jdbc.bind-parameters = true
可选配置校验
如果不确定配置是否生效,可以额外添加以下配置,启动时EclipseLink会打印所有加载的配置项,方便你验证批量写入和日志配置是否被正确读取:
spring.jpa.properties.eclipselink.logging.level.config = FINE
内容的提问来源于stack exchange,提问作者payne
相关产品推荐
相关产品推荐

