J'ai un problème avec le chargement des données dans la base de données en mémoire lors de l'initialisation de l'application. J'ai créé schema.sql et data.sql fichiers contenant la structure de table et les données initiales.Spring Boot dans la base de données de la mémoire H2 ne charge pas les données du fichier à l'initialisation
schema.sql:
CREATE TABLE users (
id INT PRIMARY KEY,
username VARCHAR(64) NOT NULL,
password VARCHAR(64)
);
et data.sql:
INSERT INTO users (id, username, password) VALUES
(1, 'usr1', 'bigSecret'),
(2, 'usr2', 'topSecret');
J'utilise JpaRepository
pour travailler avec la couche de données:
public interface UserRepository extends JpaRepository<User, Long> {
}
Et je aussi con Figure application.properties
spring.datasource.initialize=true
spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=- 1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
Mais quand je l'appelle
List<User> users = userRepository.findAll();
entité utilisateur
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue
private Long id;
private String username;
private String password;
public User() { }
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
Je reçois la liste vide, mais je devrais obtenir deux utilisateurs préremplis de mon en -mémoire H2 base de données. Quel est le problème avec la base de données de la mémoire? Merci.
où avez-vous placé ces scripts? –
Je me demande si votre URL est OK avec l'espace supplémentaire 'DB_CLOSE_DELAY = - 1;' => 'DB_CLOSE_DELAY = -1;' – alexbt
pouvez-vous montrer votre entité 'User' – Patrick