Skip to content

Commit 8c381f1

Browse files
jrenaatbeikov
authored andcommitted
HHH-19595 - Implement support for upserts in HSQLDB
Signed-off-by: Jan Schatteman <[email protected]>
1 parent a5f96b5 commit 8c381f1

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.hibernate.exception.spi.ViolatedConstraintNameExtractor;
3636
import org.hibernate.metamodel.mapping.EntityMappingType;
3737
import org.hibernate.metamodel.spi.RuntimeModelCreationContext;
38+
import org.hibernate.persister.entity.mutation.EntityMutationTarget;
3839
import org.hibernate.query.sqm.CastType;
3940
import org.hibernate.query.sqm.IntervalType;
4041
import org.hibernate.query.common.TemporalUnit;
@@ -51,6 +52,8 @@
5152
import org.hibernate.sql.ast.spi.StandardSqlAstTranslatorFactory;
5253
import org.hibernate.sql.ast.tree.Statement;
5354
import org.hibernate.sql.exec.spi.JdbcOperation;
55+
import org.hibernate.sql.model.MutationOperation;
56+
import org.hibernate.sql.model.internal.OptionalTableUpdate;
5457
import org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorHSQLDBDatabaseImpl;
5558
import org.hibernate.tool.schema.extract.spi.SequenceInformationExtractor;
5659
import org.hibernate.type.spi.TypeConfiguration;
@@ -782,4 +785,13 @@ public boolean supportsRowValueConstructorSyntaxInInList() {
782785
return false;
783786
}
784787

788+
@Override
789+
public MutationOperation createOptionalTableUpdateOperation(
790+
EntityMutationTarget mutationTarget,
791+
OptionalTableUpdate optionalTableUpdate,
792+
SessionFactoryImplementor factory) {
793+
return new HSQLSqlAstTranslator<>( factory, optionalTableUpdate )
794+
.createMergeOperation( optionalTableUpdate );
795+
}
796+
785797
}

hibernate-core/src/main/java/org/hibernate/dialect/sql/ast/HSQLSqlAstTranslator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import org.hibernate.query.sqm.ComparisonOperator;
1414
import org.hibernate.sql.ast.Clause;
1515
import org.hibernate.sql.ast.SqlAstNodeRenderingMode;
16-
import org.hibernate.sql.ast.spi.AbstractSqlAstTranslator;
16+
import org.hibernate.sql.ast.spi.SqlAstTranslatorWithMerge;
1717
import org.hibernate.sql.ast.spi.SqlSelection;
1818
import org.hibernate.sql.ast.tree.Statement;
1919
import org.hibernate.sql.ast.tree.expression.CaseSearchedExpression;
@@ -40,7 +40,7 @@
4040
*
4141
* @author Christian Beikov
4242
*/
43-
public class HSQLSqlAstTranslator<T extends JdbcOperation> extends AbstractSqlAstTranslator<T> {
43+
public class HSQLSqlAstTranslator<T extends JdbcOperation> extends SqlAstTranslatorWithMerge<T> {
4444

4545
public HSQLSqlAstTranslator(SessionFactoryImplementor sessionFactory, Statement statement) {
4646
super( sessionFactory, statement );

0 commit comments

Comments
 (0)