我想爲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