Skip to content

Commit 1598a3e

Browse files
committed
HHH-19521 Use Dialect in PersistentTemporaryTableStrategy for table creation DDL
1 parent b505d6c commit 1598a3e

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

hibernate-core/src/main/java/org/hibernate/dialect/Dialect.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,7 @@ public abstract class Dialect implements ConversionContext, TypeContributor, Fun
348348
private final Set<String> sqlKeywords = new HashSet<>();
349349

350350
private final SizeStrategy sizeStrategy = new SizeStrategyImpl();
351+
private final PersistentTemporaryTableStrategy persistentTemporaryTableStrategy = new PersistentTemporaryTableStrategy( this );
351352

352353
private final DatabaseVersion version;
353354

@@ -3897,7 +3898,7 @@ public TemporaryTableExporter getTemporaryTableExporter() {
38973898
public TemporaryTableStrategy getPersistentTemporaryTableStrategy() {
38983899
return getSupportedTemporaryTableKind() == TemporaryTableKind.PERSISTENT
38993900
? new LegacyTemporaryTableStrategy( this )
3900-
: PersistentTemporaryTableStrategy.INSTANCE;
3901+
: persistentTemporaryTableStrategy;
39013902
}
39023903

39033904
/**

hibernate-core/src/main/java/org/hibernate/dialect/temptable/PersistentTemporaryTableStrategy.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
package org.hibernate.dialect.temptable;
66

77
import org.checkerframework.checker.nullness.qual.Nullable;
8+
import org.hibernate.dialect.Dialect;
9+
import org.hibernate.internal.util.StringHelper;
810
import org.hibernate.query.sqm.mutation.spi.AfterUseAction;
911
import org.hibernate.query.sqm.mutation.spi.BeforeUseAction;
1012

@@ -13,7 +15,11 @@
1315
*/
1416
public class PersistentTemporaryTableStrategy implements TemporaryTableStrategy {
1517

16-
public static final PersistentTemporaryTableStrategy INSTANCE = new PersistentTemporaryTableStrategy();
18+
private final Dialect dialect;
19+
20+
public PersistentTemporaryTableStrategy(Dialect dialect) {
21+
this.dialect = dialect;
22+
}
1723

1824
@Override
1925
public String adjustTemporaryTableName(String desiredTableName) {
@@ -27,12 +33,12 @@ public TemporaryTableKind getTemporaryTableKind() {
2733

2834
@Override
2935
public @Nullable String getTemporaryTableCreateOptions() {
30-
return null;
36+
return StringHelper.nullIfEmpty( dialect.getTableTypeString() );
3137
}
3238

3339
@Override
3440
public String getTemporaryTableCreateCommand() {
35-
return "create table";
41+
return dialect.getCreateTableString();
3642
}
3743

3844
@Override

0 commit comments

Comments
 (0)