表被“ spring.jpa.hibernate.ddl-auto”截断以验证

问题描述 投票:0回答:2

NB:Spring Boot 2.1.10 + Spring Cloud Greenwich.SR3

我有两个Spring Data JPA服务访问同一个外部数据库(MySQL)并共享一个公共域:

@Entity
@Data
public class Person {
    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Column(name = "first_name") @NotNull
    private String firstname;
    private LocalDate birth;
    private Integer votes = 0;
}

在第一个服务(生产者)中,我添加了一个data.sql用于样本插入:

insert into person(first_name) values ('foobar');
insert into person(first_name) values ('scoubidou');

以及以下属性:

spring.jpa.hibernate.ddl-auto=create-drop
spring.datasource.initialization-mode=always

在第二个服务(消费者)中,我只想使用架构而不在启动时对其进行修改,因此我使用了这些属性:

spring.jpa.hibernate.ddl-auto=validate
spring.datasource.initialization-mode=never

启动生产者时,将创建数据库模式并用示例实体填充。但是,当我启动使用者时,实体表将被截断。请问有人知道如何清空桌子以及如何避免它吗?

mysql spring-boot spring-data-jpa
2个回答
0
投票

请勿在您的生产者服务上使用create-drop。阅读this


0
投票

此属性最终解决了问题:

© www.soinside.com 2019 - 2024. All rights reserved.