Ich versuche, ein SQL-Skript für H2 zu importieren. Dieses Skript wird von Spring-Batch zur Verfügung gestellt und es wird verwendet, um die Metadaten des Jobs zu speichern. Als ich dieses Skript direkt in der H2-Konsole ausführen, habe ich keine Syntaxfehler, aber ich referenziert das gleiche Skript in Hibernate/JPA in der Initialisierungsphase importiert werden, habe ich diese Ausnahme:H2 SQL Grammar Ausnahme
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]
Hier ist die Skript ich versuche auszuführen: https://code.google.com/p/joshlong-examples/source/browse/trunk/batch/src/main/resources/sql/schema-h2.sql?r=2
ich hbm2ddl bin mit der sQL-Datei zu importieren:
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");
Jede Idee, wie ich dieses Problem lösen kann?
Danke für Ihre Antwort. Wenn ich die Skripte direkt in H2 ausführe, habe ich kein Problem. Aber wenn ich Hibernate verwende, um die Dateien zu importieren, habe ich diesen Fehler. – Dimitri
Es ist ein Hibernate "Problem". – Ralph
Es funktioniert mit Ihrem Editor (aber nicht mit Hibernate), weil das Trennzeichen im Client nicht auf dem Server behandelt wird. So kann jeder Kunde anders damit umgehen. – Ralph