diff --git a/documentation/src/main/asciidoc/introduction/Configuration.adoc b/documentation/src/main/asciidoc/introduction/Configuration.adoc index 478d61e7e75d..568e6cfdfc21 100644 --- a/documentation/src/main/asciidoc/introduction/Configuration.adoc +++ b/documentation/src/main/asciidoc/introduction/Configuration.adoc @@ -447,6 +447,9 @@ additionally, drop the schema on `SessionFactory` shutdown | `jakarta.persistence.sql-load-script-source` | (Optional) The name of a SQL DML script to be executed + +| `hibernate.hbm2ddl.import_files_sql_extractor` +| (Optional) If `multi-line`, SQL statements may be split across multiple lines in scripts, and must be ``;``-terminated. |=== This feature is extremely useful for testing. diff --git a/hibernate-core/src/main/java/org/hibernate/cfg/SchemaToolingSettings.java b/hibernate-core/src/main/java/org/hibernate/cfg/SchemaToolingSettings.java index 84dc90996ca4..b8becd4334ff 100644 --- a/hibernate-core/src/main/java/org/hibernate/cfg/SchemaToolingSettings.java +++ b/hibernate-core/src/main/java/org/hibernate/cfg/SchemaToolingSettings.java @@ -216,14 +216,15 @@ public interface SchemaToolingSettings { *

* The correct extractor to use depends on the format of the SQL script: *

* * @settingDefault {@code org.hibernate.tool.schema.internal.script.SingleLineSqlScriptExtractor}. * + * @see org.hibernate.tool.schema.spi.SqlScriptCommandExtractor * @see org.hibernate.tool.schema.internal.script.SingleLineSqlScriptExtractor * @see org.hibernate.tool.schema.internal.script.MultiLineSqlScriptExtractor */ diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/MultiLineSqlScriptExtractor.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/MultiLineSqlScriptExtractor.java index cee908b674d3..663782f675e2 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/MultiLineSqlScriptExtractor.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/MultiLineSqlScriptExtractor.java @@ -26,11 +26,14 @@ import org.antlr.v4.runtime.misc.ParseCancellationException; /** - * Class responsible for extracting SQL statements from import script. Supports instructions/comments and quoted - * strings spread over multiple lines. Each statement must end with semicolon. + * Class responsible for extracting SQL statements from an import script. + * Supports instructions/comments and quoted strings spread over multiple lines. + * Each statement must end with a semicolon. * * @author Lukasz Antoniak * @author Steve Ebersole + * + * @see org.hibernate.cfg.SchemaToolingSettings#HBM2DDL_IMPORT_FILES_SQL_EXTRACTOR */ public class MultiLineSqlScriptExtractor implements SqlScriptCommandExtractor { public static final String SHORT_NAME = "multi-line"; diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SingleLineSqlScriptExtractor.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SingleLineSqlScriptExtractor.java index ead209cf4845..4dde536297a9 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SingleLineSqlScriptExtractor.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/script/SingleLineSqlScriptExtractor.java @@ -15,11 +15,14 @@ import org.hibernate.tool.schema.spi.SqlScriptException; /** - * Class responsible for extracting SQL statements from import script. Treats each line as a complete SQL statement. - * Comment lines shall start with {@code --}, {@code //} or {@code /*} character sequence. + * Class responsible for extracting SQL statements from an import script. + * Treats each line as a complete SQL statement. + * Comment lines must start with {@code --}, {@code //}, or {@code /*}. * * @author Lukasz Antoniak * @author Steve Ebersole + * + * @see org.hibernate.cfg.SchemaToolingSettings#HBM2DDL_IMPORT_FILES_SQL_EXTRACTOR */ public class SingleLineSqlScriptExtractor implements SqlScriptCommandExtractor { public static final String SHORT_NAME = "single-line"; diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/spi/SqlScriptCommandExtractor.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/spi/SqlScriptCommandExtractor.java index 805cc9ca4564..fd596baf35a2 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/spi/SqlScriptCommandExtractor.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/spi/SqlScriptCommandExtractor.java @@ -12,13 +12,20 @@ /** * Contract for extracting statements from source/import/init scripts. + *

+ * A concrete implementation may be selected via + * {@value org.hibernate.cfg.SchemaToolingSettings#HBM2DDL_IMPORT_FILES_SQL_EXTRACTOR}. * * @author Lukasz Antoniak * - * @see org.hibernate.cfg.AvailableSettings#HBM2DDL_IMPORT_FILES - * @see org.hibernate.cfg.AvailableSettings#JAKARTA_HBM2DDL_LOAD_SCRIPT_SOURCE - * @see org.hibernate.cfg.AvailableSettings#JAKARTA_HBM2DDL_CREATE_SCRIPT_SOURCE - * @see org.hibernate.cfg.AvailableSettings#JAKARTA_HBM2DDL_DROP_SCRIPT_SOURCE + * @see org.hibernate.cfg.SchemaToolingSettings#HBM2DDL_IMPORT_FILES_SQL_EXTRACTOR + * @see org.hibernate.tool.schema.internal.script.SingleLineSqlScriptExtractor + * @see org.hibernate.tool.schema.internal.script.MultiLineSqlScriptExtractor + * + * @see org.hibernate.cfg.SchemaToolingSettings#HBM2DDL_IMPORT_FILES + * @see org.hibernate.cfg.SchemaToolingSettings#JAKARTA_HBM2DDL_LOAD_SCRIPT_SOURCE + * @see org.hibernate.cfg.SchemaToolingSettings#JAKARTA_HBM2DDL_CREATE_SCRIPT_SOURCE + * @see org.hibernate.cfg.SchemaToolingSettings#JAKARTA_HBM2DDL_DROP_SCRIPT_SOURCE */ public interface SqlScriptCommandExtractor extends Service { /**