| 
19 | 19 | import static com.mongodb.hibernate.internal.MongoConstants.MONGO_DBMS_NAME;  | 
20 | 20 | import static java.lang.String.format;  | 
21 | 21 | 
 
  | 
 | 22 | +import com.mongodb.hibernate.internal.FeatureNotSupportedException;  | 
22 | 23 | import com.mongodb.hibernate.internal.dialect.function.array.MongoArrayConstructorFunction;  | 
23 | 24 | import com.mongodb.hibernate.internal.dialect.function.array.MongoArrayContainsFunction;  | 
24 | 25 | import com.mongodb.hibernate.internal.dialect.function.array.MongoArrayIncludesFunction;  | 
 | 
35 | 36 | import org.hibernate.dialect.Dialect;  | 
36 | 37 | import org.hibernate.dialect.aggregate.AggregateSupport;  | 
37 | 38 | import org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo;  | 
 | 39 | +import org.hibernate.engine.jdbc.mutation.JdbcValueBindings;  | 
 | 40 | +import org.hibernate.engine.spi.SessionFactoryImplementor;  | 
 | 41 | +import org.hibernate.engine.spi.SharedSessionContractImplementor;  | 
 | 42 | +import org.hibernate.persister.entity.mutation.EntityMutationTarget;  | 
38 | 43 | import org.hibernate.service.ServiceRegistry;  | 
39 | 44 | import org.hibernate.sql.ast.SqlAstTranslatorFactory;  | 
 | 45 | +import org.hibernate.sql.model.MutationOperation;  | 
 | 46 | +import org.hibernate.sql.model.ValuesAnalysis;  | 
 | 47 | +import org.hibernate.sql.model.internal.OptionalTableUpdate;  | 
 | 48 | +import org.hibernate.sql.model.jdbc.OptionalTableUpdateOperation;  | 
40 | 49 | import org.hibernate.type.descriptor.sql.internal.DdlTypeImpl;  | 
41 | 50 | import org.jspecify.annotations.Nullable;  | 
42 | 51 | 
 
  | 
@@ -237,4 +246,21 @@ public void initializeFunctionRegistry(FunctionContributions functionContributio  | 
237 | 246 |         functionRegistry.register("array_includes", new MongoArrayIncludesFunction(false, typeConfiguration));  | 
238 | 247 |         functionRegistry.register("array_includes_nullable", new MongoArrayIncludesFunction(true, typeConfiguration));  | 
239 | 248 |     }  | 
 | 249 | + | 
 | 250 | +    @Override  | 
 | 251 | +    public MutationOperation createOptionalTableUpdateOperation(  | 
 | 252 | +            EntityMutationTarget mutationTarget,  | 
 | 253 | +            OptionalTableUpdate optionalTableUpdate,  | 
 | 254 | +            SessionFactoryImplementor factory) {  | 
 | 255 | +        return new OptionalTableUpdateOperation(mutationTarget, optionalTableUpdate, factory) {  | 
 | 256 | +            @Override  | 
 | 257 | +            public void performMutation(  | 
 | 258 | +                    JdbcValueBindings jdbcValueBindings,  | 
 | 259 | +                    ValuesAnalysis valuesAnalysis,  | 
 | 260 | +                    SharedSessionContractImplementor session) {  | 
 | 261 | +                throw new FeatureNotSupportedException(  | 
 | 262 | +                        "TODO-HIBERNATE-94 https://jira.mongodb.org/browse/HIBERNATE-94");  | 
 | 263 | +            }  | 
 | 264 | +        };  | 
 | 265 | +    }  | 
240 | 266 | }  | 
0 commit comments