2015-10-14 4 views
0

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

+0

Avez-vous ajouté une contrainte sur la table? – Acewin

+0

Non. Si j'exécute la même instruction sur la base de données actuelle, elle s'exécute avec succès. – user5402945

+0

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

Répondre

0

Ce problème est résolu. La table avait un déclic que je n'ai pas remarqué. Merci pour votre contribution Acewin.