时间:2019年12月10日10:59:23
来源:https://blog.csdn.net/shuaigg001/article/details/93880753
最近在配置SpringDataJPA的多数据源,遇到了很多的问题,很多都是springboot1.x下的配置,已经对当前2.x版本失效了。在配置完成以后,mysql数据库中总是会出现hibernate_sequence这张表。这张表是用来下一个的主键的值的,按照流行的做法,把id的自增方式改为如下:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
主要是第二个注解,使用mysql的主键自增方案,但是就算是这么设置了,数据库中还是会出现hibernate_sequence表,就很奇怪。但是在我其他的单数据源的项目下就没有这张多余的表。经过查询,原来是hibernate的设置变了。
根据参考,在yml配置中添加一段设置即可:
server:
port: 8080
#多数据库的配置
spring:
#主数据库
primary:
datesource:
url: jdbc:mysql://localhost:3306/primarydatebase?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
username: root
password : 123456
#从数据库
secondary:
datesource:
url: jdbc:mysql://localhost:3306/secondarydatebase?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
username: root
password : 123456
jpa:
hibernate:
ddl-auto: update
use-new-id-generator-mappings: false # 1
show-sql: true
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: UTC
21行添加注释为1(# 1)的一行代码即可。