programing

파일 기반 h2가 지속되었지만 Spring Boot에서 로드되지 않음

iphone6s 2023. 7. 11. 21:39
반응형

파일 기반 h2가 지속되었지만 Spring Boot에서 로드되지 않음

Spring Boot에 기반한 작은 애플리케이션을 만들었습니다.

  • 스프링부츠-부츠-부츠-부츠-부츠-브루
  • spring-boot-slot-data-jpa

응용 프로그램에 도메인 클래스가 하나만 있습니다.Post.java따라서 Rest Controller와 DAO가 있습니다.데이터는 파일 기반 hsql db에 유지되어야 합니다.

응용 프로그램이 실행되면 모든 것이 정상으로 보입니다.데이터가 저장됩니다.h2 파일이 생성되고 삽입 문이 포함됩니다.

그러나 응용 프로그램을 종료하고 두 번째로 시작할 때.로드된 데이터가 없습니다.(이전 파일을 덮어쓴 새 DB 파일이 생성된 것처럼).)

application.properties

spring.datasource.url = jdbc:h2:file:~/testdb
spring.datasource.username = sa
spring.datasource.password = sa
spring.datasource.driverClassName = org.h2.Driver

pom.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>

DAO.java 이후

public interface PostDAO extends JpaRepository<Post, Integer>{
    public Post findByMessage(String message);
}

포스트.자바

@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;
    }
}

의 기본값spring.jpa.hibernate.ddl-auto이라create-drop내장된 데이터베이스를 사용하는 경우당신은 아마도 그것이 비어있기를 원하거나, 아니면 그냥.validate(none작동할 수도 있지만 겨울잠에서는 사용하지 않는 것 같습니다.)

언급URL : https://stackoverflow.com/questions/24703988/file-based-h2-persisted-but-not-loaded-in-spring-boot

반응형