2015-10-14 89 views
0

我有Spring數據休息應用程序&單元測試這些服務,我在內存數據庫中使用HSQL的Spring Boot &。但在運行時將數據插入到HSQL表中時,出現錯誤。當其他插入語句正在工作時,我只有1個插入語句出現此錯誤。HSQL DB插入語句錯誤

錯誤

造成的:值java.sql.SQLException:列數不匹配聲明

在SQL文件

插入語句

Insert into countries (ID,COUNTRY,CODE) values (2,'UNITED STATES','US'); 

注: - 在同樣的應用程序插入其他表正在工作&從表中檢索數據也是成功的。

實體 - 使用此HSQL創建表。

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

感謝

+0

您是否在表 – Acewin

+0

上添加了任何約束。否。如果我在實際數據庫上執行相同的語句,則它會成功執行。 – user5402945

+0

所以你通過JDBC調用來完成它。我想在JDBC調用的情況下,你需要在語句中包含表的所有列。對於您未在插入語句中傳遞的值,您可以傳遞null值 例如插入到國家(ID,國家,代碼,大小)值(2,'UNITED STATES','US',null); – Acewin

回答

0

此問題已得到解決。桌子上有觸發器,我沒有注意到。感謝您輸入Acewin。