gpt4 book ai didi

java - Spring 启动和 ddl-auto 问题

转载 作者:行者123 更新时间:2023-11-30 11:24:18 26 4
gpt4 key购买 nike

我目前正在使用 spring-boot 创建一个使用 Spring MVC 和 JPA 数据的网络应用程序,但是我遇到了属性 spring.jpa.hibernate.ddl-auto: create 的问题,因为它看起来是第一次运行我的表 A , B , C 被正确创建。然后我填充所有 3 个表,当我关闭应用程序并重新运行它时,只有表 A 仍然包含填充的数据。

表 B 和 C 被完全删除,这有点奇怪。

有人知道为什么会这样吗?

我的 pom.xml 中有以下依赖项

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>0.5.0.M6</version>
</parent>


<dependencyManagement>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
</dependency>
</dependencies>

</dependencyManagement>

<dependencies>
<!-- Web Dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>

<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring3</artifactId>
</dependency>
<dependency>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
</dependency>


<!-- Persistence -->

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<!-- Test -->
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<classifier>tests</classifier>
</dependency> -->

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>

</dependency>

<!-- Database -->
<!--<dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId>
<scope>runtime</scope> </dependency> -->

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
</dependency>

<!-- Validation Dependencies -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>


</dependencies>

spring.jpa.hibernate.ddl-自动

最佳答案

当 ddl-auto = create 时,它​​会清除表并重新创建它们,因此 drop-create 是预期的行为,我希望您会丢失数据。唯一令人惊讶的是它单独留下表 A。在我的例子中,我使用 ddl-auto=create 的集成测试不会访问运行后仍然有数据的表。所以我认为它不会重新创建未访问的表。

关于java - Spring 启动和 ddl-auto 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20707203/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com