SpringData+JPA+mysql 8, 报错 cannot be null when 'hibernate.dialect' not set
是因为Hibernate SQL方言没有设置导致的,在properties文件中增加下面这行:
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
如果使用mysql6以上,可能继续报错
是因为版本导致的时区问题,使用5.7以下则不会报错,
解决办法:
数据库url中地址要配置“serverTimezone=UTC”
MySQL jdbc 6.0 版本以上必须配置“serverTimezone”参数
UTC代表的是全球标准时间
若我们使用的时间是北京时区也就是东八区,领先UTC八个小时。url的时区使用中国标准时间。也是就serverTimezone=Asia/Shanghai
url 添加 serverTimezone=Asia/Shanghai
Hibernate SQL方言如下表: