我想为H2导入一个sql脚本。该脚本由spring-batch提供,用于存储作业元数据。当我直接在H2控制台执行这个脚本,我有没有语法错误,但我引用在休眠/ JPA相同的脚本在初始化阶段需要进口,我得到这个异常:H2 SQL语法异常
org.hibernate.tool.hbm2ddl.ImportScriptException: Error during statement execution (file: 'org/springframework/batch/core/schema-h2.sql'): CREATE TABLE BATCH_JOB_INSTANCE (
....
Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "CREATE TABLE BATCH_JOB_INSTANCE ("; expected "identifier"; SQL statement:
CREATE TABLE BATCH_JOB_INSTANCE ([42001-171]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329) ~[h2-1.3.171.jar:1.3.171]
at org.h2.message.DbException.get(DbException.java:169) ~[h2-1.3.171.jar:1.3.171]
at org.h2.message.DbException.getSyntaxError(DbException.java:194) ~[h2-1.3.171.jar:1.3.171]
我用的就是hbm2ddl导入SQL文件:
jpaProperties.setProperty("hibernate.connection.driver_class", "org.h2.Driver");
jpaProperties.setProperty("hibernate.dialect", H2Dialect.class.getName());
jpaProperties.setProperty("hibernate.hbm2ddl.auto", "create-drop");
jpaProperties.setProperty("hibernate.hbm2ddl.import_files",
"org/springframework/batch/core/schema-drop-h2.sql,org/springframework/batch/core/schema-h2.sql");
任何想法如何,我可以解决这个问题?
感谢您的回答。当我在H2中直接执行脚本时,我没有问题。但是,当我使用休眠导入文件时,我有这个错误。 – Dimitri
这是一个休眠“问题”。 – Ralph
它适用于您的编辑器(但不适用于Hibernate),因为分隔符是在不在服务器中的客户端中处理的。所以每个客户都可以用不同的方式处理它。 – Ralph