2015-10-14 88 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。