【发布时间】:2012-03-02 15:59:39
【问题描述】:
我目前正在尝试加载 sql 脚本来创建 HSQL 数据库。 这是通过使用以下代码完成的:
Resource resource = new ClassPathResource("/create-table.sql");
SimpleJdbcTestUtils.executeSqlScript(template, resource, Boolean.FALSE);
脚本包含触发器的创建语句:
CREATE TRIGGER t BEFORE UPDATE ON SUBJECTS
REFERENCING NEW AS newrow OLD AS oldrow
FOR EACH ROW
BEGIN ATOMIC
SET newrow.VERSION = oldrow.VERSION + 1;
END;
使用此代码运行测试时,出现以下错误:
Caused by: java.sql.SQLException: Unexpected end of command: REFERENCING in statement
[CREATE TRIGGER t BEFORE UPDATE ON SUBJECTS REFERENCING]
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.jdbcStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.jdbcStatement.executeUpdate(Unknown Source)
at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
at org.springframework.jdbc.core.JdbcTemplate$1UpdateStatementCallback.doInStatement(JdbcTemplate.java:508)
at org.springframework.jdbc.core.JdbcTemplate$1UpdateStatementCallback.doInStatement(JdbcTemplate.java:1)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:395)
我使用的是 Spring 3.0.5,而 HSQLDB(驱动程序,...)版本是 1.8.0.10。
有没有人遇到过这个问题或知道如何解决这个问题?
(我也尝试将所有内容放在一行,将 sql 放在单独的文件中,删除分号,...)
任何帮助将不胜感激。提前谢谢!
温迪。
【问题讨论】:
标签: spring triggers hsqldb spring-jdbc spring-test