|
33 | 33 | import org.hibernate.id.enhanced.SingleNamingStrategy;
|
34 | 34 | import org.hibernate.id.enhanced.LegacyNamingStrategy;
|
35 | 35 | import org.hibernate.id.enhanced.StandardNamingStrategy;
|
| 36 | +import org.hibernate.query.sqm.mutation.internal.cte.CteInsertStrategy; |
36 | 37 | import org.hibernate.query.sqm.mutation.internal.cte.CteMutationStrategy;
|
| 38 | +import org.hibernate.query.sqm.mutation.internal.temptable.GlobalTemporaryTableInsertStrategy; |
37 | 39 | import org.hibernate.query.sqm.mutation.internal.temptable.GlobalTemporaryTableMutationStrategy;
|
| 40 | +import org.hibernate.query.sqm.mutation.internal.temptable.LocalTemporaryTableInsertStrategy; |
38 | 41 | import org.hibernate.query.sqm.mutation.internal.temptable.LocalTemporaryTableMutationStrategy;
|
| 42 | +import org.hibernate.query.sqm.mutation.internal.temptable.PersistentTableInsertStrategy; |
39 | 43 | import org.hibernate.query.sqm.mutation.internal.temptable.PersistentTableMutationStrategy;
|
| 44 | +import org.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategy; |
40 | 45 | import org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy;
|
41 | 46 | import org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorBuilderImpl;
|
42 | 47 | import org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl;
|
@@ -115,6 +120,7 @@ public StrategySelector buildSelector(ClassLoaderService classLoaderService) {
|
115 | 120 | );
|
116 | 121 | strategySelector.registerStrategyLazily( JtaPlatform.class, new DefaultJtaPlatformSelector() );
|
117 | 122 | addTransactionCoordinatorBuilders( strategySelector );
|
| 123 | + addSqmMultiTableInsertStrategies( strategySelector ); |
118 | 124 | addSqmMultiTableMutationStrategies( strategySelector );
|
119 | 125 | addImplicitNamingStrategies( strategySelector );
|
120 | 126 | addColumnOrderingStrategies( strategySelector );
|
@@ -177,6 +183,29 @@ private static void addTransactionCoordinatorBuilders(StrategySelectorImpl strat
|
177 | 183 | );
|
178 | 184 | }
|
179 | 185 |
|
| 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 | + |
180 | 209 | private static void addSqmMultiTableMutationStrategies(StrategySelectorImpl strategySelector) {
|
181 | 210 | strategySelector.registerStrategyImplementor(
|
182 | 211 | SqmMultiTableMutationStrategy.class,
|
|
0 commit comments