Skip to content

Commit 5550c20

Browse files
committed
HHH-18399 Avoid collecting duplicate attribute for to-one inverse table
1 parent 1ab7493 commit 5550c20

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3584,6 +3584,8 @@ protected EntityTableMapping[] buildTableMappings() {
35843584
final TableMappingBuilder tableMappingBuilder;
35853585

35863586
final TableMappingBuilder existing = tableBuilderMap.get( tableExpression );
3587+
3588+
final boolean inverseTable = isInverseTable( relativePosition );
35873589
if ( existing == null ) {
35883590
final Consumer<SelectableConsumer> selectableConsumerConsumer = tableKeyColumnVisitationSupplier.get();
35893591
final List<EntityTableMapping.KeyColumn> keyColumns = new ArrayList<>();
@@ -3614,7 +3616,7 @@ protected EntityTableMapping[] buildTableMappings() {
36143616
relativePosition,
36153617
new EntityTableMapping.KeyMapping( keyColumns, identifierMapping ),
36163618
!isIdentifierTable && isNullableTable( relativePosition ),
3617-
isInverseTable( relativePosition ),
3619+
inverseTable,
36183620
isIdentifierTable,
36193621
insertExpectations[ relativePosition ],
36203622
customInsertSql,
@@ -3636,7 +3638,9 @@ protected EntityTableMapping[] buildTableMappings() {
36363638
tableMappingBuilder = existing;
36373639
}
36383640

3639-
collectAttributesIndexesForTable( relativePosition, tableMappingBuilder.attributeIndexes::add );
3641+
if ( !inverseTable ) {
3642+
collectAttributesIndexesForTable( relativePosition, tableMappingBuilder.attributeIndexes::add );
3643+
}
36403644
} );
36413645

36423646
final EntityTableMapping[] list = new EntityTableMapping[tableBuilderMap.size()];

0 commit comments

Comments
 (0)