J'ai l'application de repos de données de ressort & pour l'unité de test de ces services, j'utilise Spring Boot & HSQL dans la base de données de la mémoire. Mais lors de l'insertion de données dans la table HSQL lors de l'exécution, j'obtiens une erreur. Alors que d'autres instructions d'insertion fonctionnent, j'obtiens cette erreur uniquement pour une instruction d'insertion.Erreur dans l'instruction d'insertion pour HSQL DB
Erreur
causés par: java.sql.SQLException: Nombre de colonnes ne correspond pas dans la déclaration
Déclaration d'insertion dans le fichier SQL
Insert into countries (ID,COUNTRY,CODE) values (2,'UNITED STATES','US');
Note: - Dans le même insertion d'application pour les autres tables fonctionnent & la récupération des données de la table est également réussie. Entité - À l'aide de ce HSQL, créez la table.
@Entity
@Table(name = "COUNTRIES")
public class Country implements Describable, Serializable {
@Id
@SequenceGenerator(name="CountriesSeq",sequenceName="SEQ_COUNTRIES")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "CountriesSeq")
protected Integer id;
@Column(name = "CODE")
private String code;
@Column(name = "COUNTRY")
private String country;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
}
Merci
Avez-vous ajouté une contrainte sur la table? – Acewin
Non. Si j'exécute la même instruction sur la base de données actuelle, elle s'exécute avec succès. – user5402945
donc vous le faites à travers un appel JDBC ?? Je suppose que dans le cas d'un appel JDBC, vous devrez inclure toutes les colonnes de la table dans l'instruction. Pour les valeurs que vous ne passez pas dans l'instruction d'insertion, vous pouvez passer la valeur null Par exemple Insérer dans les pays (ID, COUNTRY, CODE, CONTINENT) valeurs (2, 'ÉTATS-UNIS', 'US', null); – Acewin