Skip to content

Commit 2c9ce29

Browse files
jrenaatsebersole
authored andcommitted
HHH-17162 - Allow short names for insert strategies
Signed-off-by: Jan Schatteman <[email protected]>
1 parent 905108e commit 2c9ce29

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

hibernate-core/src/main/java/org/hibernate/boot/registry/selector/internal/StrategySelectorBuilder.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,15 @@
3333
import org.hibernate.id.enhanced.SingleNamingStrategy;
3434
import org.hibernate.id.enhanced.LegacyNamingStrategy;
3535
import org.hibernate.id.enhanced.StandardNamingStrategy;
36+
import org.hibernate.query.sqm.mutation.internal.cte.CteInsertStrategy;
3637
import org.hibernate.query.sqm.mutation.internal.cte.CteMutationStrategy;
38+
import org.hibernate.query.sqm.mutation.internal.temptable.GlobalTemporaryTableInsertStrategy;
3739
import org.hibernate.query.sqm.mutation.internal.temptable.GlobalTemporaryTableMutationStrategy;
40+
import org.hibernate.query.sqm.mutation.internal.temptable.LocalTemporaryTableInsertStrategy;
3841
import org.hibernate.query.sqm.mutation.internal.temptable.LocalTemporaryTableMutationStrategy;
42+
import org.hibernate.query.sqm.mutation.internal.temptable.PersistentTableInsertStrategy;
3943
import org.hibernate.query.sqm.mutation.internal.temptable.PersistentTableMutationStrategy;
44+
import org.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategy;
4045
import org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy;
4146
import org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorBuilderImpl;
4247
import org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl;
@@ -115,6 +120,7 @@ public StrategySelector buildSelector(ClassLoaderService classLoaderService) {
115120
);
116121
strategySelector.registerStrategyLazily( JtaPlatform.class, new DefaultJtaPlatformSelector() );
117122
addTransactionCoordinatorBuilders( strategySelector );
123+
addSqmMultiTableInsertStrategies( strategySelector );
118124
addSqmMultiTableMutationStrategies( strategySelector );
119125
addImplicitNamingStrategies( strategySelector );
120126
addColumnOrderingStrategies( strategySelector );
@@ -177,6 +183,29 @@ private static void addTransactionCoordinatorBuilders(StrategySelectorImpl strat
177183
);
178184
}
179185

186+
private static void addSqmMultiTableInsertStrategies(StrategySelectorImpl strategySelector) {
187+
strategySelector.registerStrategyImplementor(
188+
SqmMultiTableInsertStrategy.class,
189+
CteInsertStrategy.SHORT_NAME,
190+
CteInsertStrategy.class
191+
);
192+
strategySelector.registerStrategyImplementor(
193+
SqmMultiTableInsertStrategy.class,
194+
GlobalTemporaryTableInsertStrategy.SHORT_NAME,
195+
GlobalTemporaryTableInsertStrategy.class
196+
);
197+
strategySelector.registerStrategyImplementor(
198+
SqmMultiTableInsertStrategy.class,
199+
LocalTemporaryTableInsertStrategy.SHORT_NAME,
200+
LocalTemporaryTableInsertStrategy.class
201+
);
202+
strategySelector.registerStrategyImplementor(
203+
SqmMultiTableInsertStrategy.class,
204+
PersistentTableInsertStrategy.SHORT_NAME,
205+
PersistentTableInsertStrategy.class
206+
);
207+
}
208+
180209
private static void addSqmMultiTableMutationStrategies(StrategySelectorImpl strategySelector) {
181210
strategySelector.registerStrategyImplementor(
182211
SqmMultiTableMutationStrategy.class,

0 commit comments

Comments
 (0)