基于文件的 h2 已保留,但未在 Spring Boot 中加载
2022-09-02 03:59:58
我基于Spring Boot制作了一个小应用程序:
- 弹簧-启动器-起动器-腹板
- spring-boot-starter-data-jpa
该应用程序只有一个域类 。因此,有一个 RestController 和一个 DAO。数据应该保存在基于文件的 hsql db 中。Post.java
当应用程序运行时,一切似乎都很好。存储数据。将创建 h2 文件并包含插入语句。
但是,当我杀死应用程序并再次启动它时。不加载任何数据。(就好像创建了一个全新的db文件,它覆盖了旧的db文件)。
应用程序.属性
spring.datasource.url = jdbc:h2:file:~/testdb
spring.datasource.username = sa
spring.datasource.password = sa
spring.datasource.driverClassName = org.h2.Driver
啪.xml
<!-- Spring Boot Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Boot Data JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- H2 DB -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.179</version>
</dependency>
邮政.java
public interface PostDAO extends JpaRepository<Post, Integer>{
public Post findByMessage(String message);
}
帖子.java
@Entity
public class Post {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
private String message;
public Post(){
}
public Post(String message) {
super();
this.message = message;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}