H2 Spring Boot - 不创建所有表

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

我有 Spring Boot 3.2 和 H2 用于开发。 H2 正在创建一些表,但不是全部。

我最初使用 MySQL 数据库开发我的项目 - 但后来在 Spring Boot 中创建了一个新的开发配置文件,并将 mem 中的数据库更改为 H2。

正是在这一点上,一些实体没有获得在H2数据库中创建的表。

例如:

健康检查

@AllArgsConstructor
@NoArgsConstructor
@ToString
@Entity
@Data
@JsonIgnoreProperties({"hibernateLazyInitalizer", "handler"})
@SequenceGenerator(name = "health_check_seq", sequenceName = "HEALTH_CHECK_SEQ", initialValue = 100, allocationSize = 50)
@Table(name = "health_check")
public class HealthCheck {

    @Id
    @GeneratedValue(strategy = SEQUENCE, generator = "health_check_seq")
    private Long id;

    @JsonManagedReference
    @ManyToOne(fetch = FetchType.EAGER, optional = false)
    private Bird bird;
   
    @JsonManagedReference
    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "healthCheck")
    private List<Task> tasks;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private LocalDateTime catchDateTime;


    @JsonBackReference
    private Point<G2D> location;

    @ManyToOne
    @JoinColumn(name = "holder_id")
    private User holder;

我尝试在 datadev.sql 中插入数据,但失败,因为

HEALTH_CHECK
表不存在。

如何让H2为所有实体创建表?

java spring spring-boot hibernate h2
1个回答
0
投票

根据您提供的资源,您的代码似乎是正确的。我认为问题可能出在 application.properties 文件中。请确保您设置了以下属性:“

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
© www.soinside.com 2019 - 2024. All rights reserved.