Zrobiłem małą aplikację opartą na wiosennym boot:pliku h2 oparty trwało ale nie załadowany wiosną Boot
- wiosna-boot-rozrusznik-web
- wiosna-boot-rozrusznik-data-WZP
Aplikacja ma po prostu jedną klasę domeny Post.java
. W związku z tym istnieje RestController i DAO. Dane powinny być przechowywane w pliku hsql db.
Gdy aplikacja jest uruchomiona, wszystko wydaje się być w porządku. Dane są przechowywane. Plik h2 jest tworzony i zawiera instrukcje wstawiania.
Jednak, gdy zabiję aplikację i uruchomię ją po raz drugi. Żadne dane nie są ładowane. (Tak jakby powstał całkiem nowy plik db, który zastąpił stary).
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>
PostDAO.java
public interface PostDAO extends JpaRepository<Post, Integer>{
public Post findByMessage(String message);
}
Post.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;
}
}
Czy możesz podać zaktualizowany plik pom.xml, application.properties i wszelkie inne zmiany, które wprowadziłeś, aby to działało. Dzięki. –
W tym przypadku wystarczy dodać 'spring.jpa.hibernate.ddl-auto = validate' do pliku application.properties. @SrkiRakic – qiubix