Skip to content

Commit b4a59e4

Browse files
committed
HHH-18563 Add test using foreign key property
1 parent 8c8ede3 commit b4a59e4

File tree

3 files changed

+37
-8
lines changed

3 files changed

+37
-8
lines changed

hibernate-core/src/main/java/org/hibernate/query/sqm/mutation/internal/cte/CteInsertHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1299,7 +1299,7 @@ private List<Assignment> getCompatibleAssignments(InsertSelectStatement dmlState
12991299
final List<Assignment> assignments = conflictClause.getAssignments();
13001300
for ( Assignment assignment : assignments ) {
13011301
for ( ColumnReference targetColumn : dmlStatement.getTargetColumns() ) {
1302-
if ( targetColumn.equals( assignment.getAssignable() ) ) {
1302+
if ( assignment.getAssignable().getColumnReferences().contains( targetColumn ) ) {
13031303
if ( compatibleAssignments == null ) {
13041304
compatibleAssignments = new ArrayList<>( assignments.size() );
13051305
}

hibernate-core/src/main/java/org/hibernate/query/sqm/sql/internal/EntityValuedPathInterpretation.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import org.hibernate.dialect.Dialect;
1313
import org.hibernate.dialect.FunctionalDependencyAnalysisSupport;
1414
import org.hibernate.metamodel.mapping.BasicValuedModelPart;
15-
import org.hibernate.metamodel.mapping.EmbeddableValuedModelPart;
1615
import org.hibernate.metamodel.mapping.EntityAssociationMapping;
1716
import org.hibernate.metamodel.mapping.EntityDiscriminatorMapping;
1817
import org.hibernate.metamodel.mapping.EntityIdentifierMapping;

hibernate-core/src/test/java/org/hibernate/orm/test/flush/AutoFlushOnUpdateQueryTest.java

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
/*
2+
* SPDX-License-Identifier: LGPL-2.1-or-later
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
15
package org.hibernate.orm.test.flush;
26

3-
import org.hibernate.testing.jdbc.SQLStatementInspector;
47
import org.hibernate.testing.orm.junit.DomainModel;
58
import org.hibernate.testing.orm.junit.SessionFactory;
69
import org.hibernate.testing.orm.junit.SessionFactoryScope;
@@ -22,9 +25,7 @@
2225
AutoFlushOnUpdateQueryTest.Fruit.class,
2326
}
2427
)
25-
@SessionFactory(
26-
statementInspectorClass = SQLStatementInspector.class
27-
)
28+
@SessionFactory
2829
public class AutoFlushOnUpdateQueryTest {
2930

3031
public static final String FRUIT_NAME = "Apple";
@@ -50,8 +51,6 @@ public void tearDown(SessionFactoryScope scope) {
5051

5152
@Test
5253
public void testFlushIsExecuted(SessionFactoryScope scope) {
53-
SQLStatementInspector statementInspector = scope.getStatementInspector( SQLStatementInspector.class );
54-
statementInspector.clear();
5554
scope.inTransaction(
5655
session -> {
5756
Fruit fruit = session
@@ -81,6 +80,37 @@ public void testFlushIsExecuted(SessionFactoryScope scope) {
8180
);
8281
}
8382

83+
@Test
84+
public void testFlushIsExecuted2(SessionFactoryScope scope) {
85+
scope.inTransaction(
86+
session -> {
87+
Fruit fruit = session
88+
.createQuery(
89+
"select f from Fruit f where f.name = :name",
90+
Fruit.class
91+
).setParameter( "name", FRUIT_NAME ).getSingleResult();
92+
93+
FruitLogEntry logEntry = new FruitLogEntry( fruit, "foo" );
94+
session.persist( logEntry );
95+
96+
session.createMutationQuery( "update Fruit f set f.logEntry.id = :logEntryId where f.id = :fruitId" )
97+
.setParameter( "logEntryId", logEntry.getId() )
98+
.setParameter( "fruitId", fruit.getId() ).executeUpdate();
99+
}
100+
);
101+
102+
scope.inTransaction(
103+
session -> {
104+
Fruit fruit = session
105+
.createQuery(
106+
"select f from Fruit f where f.name = :name",
107+
Fruit.class
108+
).setParameter( "name", FRUIT_NAME ).getSingleResult();
109+
assertThat( fruit.getLogEntry() ).isNotNull();
110+
}
111+
);
112+
}
113+
84114
@Entity(name = "Fruit")
85115
public static class Fruit {
86116

0 commit comments

Comments
 (0)