From 581547b4d18582615deb43214cfcdd812db410d1 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 19 May 2025 19:16:59 +0200 Subject: [PATCH 1/2] remove some obsolete code --- .../model/internal/AnnotatedJoinColumn.java | 24 +++---------------- .../model/internal/AnnotatedJoinColumns.java | 5 ---- .../boot/model/internal/CollectionBinder.java | 5 ---- .../boot/model/internal/ColumnsBuilder.java | 4 ---- 4 files changed, 3 insertions(+), 35 deletions(-) diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumn.java b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumn.java index 53dbb811e5de..694afa1dec71 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumn.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumn.java @@ -82,7 +82,7 @@ static AnnotatedJoinColumn buildJoinColumn( throw new AnnotationException( "Property '" + path + "' overrides mapping specified using '@JoinColumnOrFormula'" ); } - return buildJoinColumn( joinColumn, /*null,*/ mappedBy, parent, propertyHolder, inferredData, "" ); + return buildJoinColumn( joinColumn, mappedBy, parent, propertyHolder, inferredData, "" ); } public static AnnotatedJoinColumn buildJoinFormula( @@ -102,7 +102,6 @@ public static AnnotatedJoinColumn buildJoinFormula( static AnnotatedJoinColumn buildJoinColumn( JoinColumn joinColumn, -// Comment comment, String mappedBy, AnnotatedJoinColumns parent, PropertyHolder propertyHolder, @@ -114,7 +113,7 @@ static AnnotatedJoinColumn buildJoinColumn( + getRelativePath( propertyHolder, inferredData.getPropertyName() ) + "' is 'mappedBy' a different entity and may not explicitly specify the '@JoinColumn'" ); } - return explicitJoinColumn( joinColumn, /*comment,*/ parent, inferredData, defaultColumnSuffix ); + return explicitJoinColumn( joinColumn, parent, inferredData, defaultColumnSuffix ); } else { return implicitJoinColumn( parent, inferredData, defaultColumnSuffix ); @@ -123,12 +122,10 @@ static AnnotatedJoinColumn buildJoinColumn( private static AnnotatedJoinColumn explicitJoinColumn( JoinColumn joinColumn, -// Comment comment, AnnotatedJoinColumns parent, PropertyData inferredData, String defaultColumnSuffix) { final AnnotatedJoinColumn column = new AnnotatedJoinColumn(); -// column.setComment( comment != null ? comment.value() : null ); // column.setContext( context ); // column.setJoins( joins ); // column.setPropertyHolder( propertyHolder ); @@ -290,15 +287,6 @@ private static AnnotatedJoinColumn buildImplicitInheritanceJoinColumn( return column; } - public static void checkIfJoinColumn(Object columns, PropertyHolder holder, PropertyData property) { - if ( !( columns instanceof AnnotatedJoinColumn[] ) ) { - throw new AnnotationException( - "Property '" + getRelativePath( holder, property.getPropertyName() ) - + "' is an association and may not use '@Column' to specify column mappings (use '@JoinColumn' instead)" - ); - } - } - public void copyReferencedStructureAndCreateDefaultJoinColumns( PersistentClass referencedEntity, SimpleValue referencedValue, @@ -386,14 +374,8 @@ private String defaultColumnName(int columnIndex, PersistentClass referencedEnti // } } - public void addDefaultJoinColumnName(PersistentClass referencedEntity, String logicalReferencedColumn) { - final String columnName = getParent().buildDefaultColumnName( referencedEntity, logicalReferencedColumn ); - getMappingColumn().setName( columnName ); - setLogicalColumnName( columnName ); - } - /** - * used for mappedBy cases + * Used for {@code mappedBy} cases. */ public void linkValueUsingAColumnCopy(Column column, SimpleValue value) { initMappingColumn( diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumns.java b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumns.java index 8a61aebe83b2..1a3ec535e979 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumns.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumns.java @@ -138,7 +138,6 @@ static AnnotatedJoinColumns buildJoinColumnsWithFormula( public static AnnotatedJoinColumns buildJoinColumns( JoinColumn[] joinColumns, -// Comment comment, String mappedBy, Map joins, PropertyHolder propertyHolder, @@ -146,7 +145,6 @@ public static AnnotatedJoinColumns buildJoinColumns( MetadataBuildingContext buildingContext) { return buildJoinColumnsWithDefaultColumnSuffix( joinColumns, -// comment, mappedBy, joins, propertyHolder, @@ -158,7 +156,6 @@ public static AnnotatedJoinColumns buildJoinColumns( public static AnnotatedJoinColumns buildJoinColumnsWithDefaultColumnSuffix( JoinColumn[] joinColumns, -// Comment comment, String mappedBy, Map joins, PropertyHolder propertyHolder, @@ -180,7 +177,6 @@ public static AnnotatedJoinColumns buildJoinColumnsWithDefaultColumnSuffix( if ( isEmpty( actualColumns ) ) { AnnotatedJoinColumn.buildJoinColumn( null, -// comment, mappedBy, parent, propertyHolder, @@ -193,7 +189,6 @@ public static AnnotatedJoinColumns buildJoinColumnsWithDefaultColumnSuffix( for ( JoinColumn actualColumn : actualColumns ) { AnnotatedJoinColumn.buildJoinColumn( actualColumn, -// comment, mappedBy, parent, propertyHolder, diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/CollectionBinder.java b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/CollectionBinder.java index 2438615dea98..d38ec737701c 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/CollectionBinder.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/CollectionBinder.java @@ -242,7 +242,6 @@ public static void bindCollection( collectionBinder.setInheritanceStatePerClass( inheritanceStatePerClass ); collectionBinder.setDeclaringClass( inferredData.getDeclaringClass() ); -// final Comment comment = property.getAnnotation( Comment.class ); final Cascade hibernateCascade = property.getAnnotationUsage( Cascade.class, modelsContext ); collectionBinder.setElementColumns( elementColumns( @@ -261,7 +260,6 @@ public static void bindCollection( entityBinder, context, property -// comment ) ); collectionBinder.setMapKeyManyToManyColumns( mapKeyJoinColumns( @@ -270,7 +268,6 @@ public static void bindCollection( entityBinder, context, property -// comment ) ); bindJoinedTableAssociation( @@ -351,10 +348,8 @@ private static AnnotatedJoinColumns mapKeyJoinColumns( EntityBinder entityBinder, MetadataBuildingContext context, MemberDetails property) { -// Comment comment) { return buildJoinColumnsWithDefaultColumnSuffix( mapKeyJoinColumnAnnotations( property, context ), -// comment, null, entityBinder.getSecondaryTables(), propertyHolder, diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/ColumnsBuilder.java b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/ColumnsBuilder.java index 0cadb9d70c3f..2920b00c8534 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/ColumnsBuilder.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/ColumnsBuilder.java @@ -133,7 +133,6 @@ else if ( joinColumns == null OneToMany oneToMany = property.getDirectAnnotationUsage( OneToMany.class ); joinColumns = AnnotatedJoinColumns.buildJoinColumns( null, -// comment, oneToMany == null ? null : nullIfEmpty( oneToMany.mappedBy() ), entityBinder.getSecondaryTables(), propertyHolder, @@ -172,11 +171,9 @@ private AnnotatedJoinColumns buildDefaultJoinColumnsForToOne( MemberDetails property, PropertyData inferredData) { final JoinTable joinTableAnn = propertyHolder.getJoinTable( property ); -// final Comment comment = property.getAnnotation(Comment.class); if ( joinTableAnn != null ) { return AnnotatedJoinColumns.buildJoinColumns( joinTableAnn.inverseJoinColumns(), -// comment, null, entityBinder.getSecondaryTables(), propertyHolder, @@ -188,7 +185,6 @@ private AnnotatedJoinColumns buildDefaultJoinColumnsForToOne( final OneToOne oneToOneAnn = property.getDirectAnnotationUsage( OneToOne.class ); return AnnotatedJoinColumns.buildJoinColumns( null, -// comment, oneToOneAnn == null ? null : nullIfEmpty( oneToOneAnn.mappedBy() ), entityBinder.getSecondaryTables(), propertyHolder, From 54fc1b3162616df9c5a8e33339641f0426dc3734 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 19 May 2025 19:24:02 +0200 Subject: [PATCH 2/2] extract a method --- .../model/internal/AnnotatedJoinColumns.java | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumns.java b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumns.java index 1a3ec535e979..38181fb6a633 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumns.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/model/internal/AnnotatedJoinColumns.java @@ -426,7 +426,7 @@ private Identifier columnIdentifier( ImplicitNamingStrategy implicitNamingStrategy, InFlightMetadataCollector collector, Database database) { - boolean isRefColumnQuoted = isQuoted( logicalReferencedColumn ); + final boolean isRefColumnQuoted = isQuoted( logicalReferencedColumn ); if ( isMappedBySide() ) { // NOTE: An @ElementCollection can't be mappedBy, but the client code @@ -439,17 +439,10 @@ private Identifier columnIdentifier( } else if ( isOwnerSide() ) { final String logicalTableName = collector.getLogicalTableName( referencedEntity.getTable() ); - Identifier columnIdentifier = implicitNamingStrategy.determineJoinColumnName( - new OwnedImplicitJoinColumnNameSource(referencedEntity, logicalTableName, logicalReferencedColumn) + final Identifier columnIdentifier = implicitNamingStrategy.determineJoinColumnName( + new OwnedImplicitJoinColumnNameSource( referencedEntity, logicalTableName, logicalReferencedColumn ) ); - // HHH-11826 magic. See AnnotatedColumn and the HHH-6005 comments - if ( columnIdentifier.getText().contains( "_{element}_" ) ) { - columnIdentifier = Identifier.toIdentifier( - columnIdentifier.getText().replace( "_{element}_", "_" ), - columnIdentifier.isQuoted() - ); - } - return quoteIfNecessary( isRefColumnQuoted, logicalTableName, columnIdentifier ); + return quoteIfNecessary( isRefColumnQuoted, logicalTableName, handleElement( columnIdentifier ) ); } else { final Identifier logicalTableName = database.toIdentifier( @@ -478,9 +471,23 @@ public Identifier getReferencedPrimaryKeyColumnName() { } } + private Identifier handleElement(Identifier columnIdentifier) { + // HHH-11826 magic. See AnnotatedColumn and the HHH-6005 comments + if ( columnIdentifier.getText().contains( "_{element}_" ) ) { + return Identifier.toIdentifier( + columnIdentifier.getText().replace( "_{element}_", "_" ), + columnIdentifier.isQuoted() + ); + } + else { + return columnIdentifier; + } + } + private static Identifier quoteIfNecessary( boolean isRefColumnQuoted, Identifier logicalTableName, Identifier columnIdentifier) { - return !columnIdentifier.isQuoted() && ( isRefColumnQuoted || logicalTableName.isQuoted() ) + return !columnIdentifier.isQuoted() + && ( isRefColumnQuoted || logicalTableName.isQuoted() ) ? Identifier.quote( columnIdentifier ) : columnIdentifier; } @@ -591,8 +598,9 @@ public Identifier getReferencedColumnName() { return null; } - final Property mappedByProperty = collector.getEntityBinding( getMappedByEntityName() ) - .getProperty( getMappedByPropertyName() ); + final Property mappedByProperty = + collector.getEntityBinding( getMappedByEntityName() ) + .getProperty( getMappedByPropertyName() ); final SimpleValue value = (SimpleValue) mappedByProperty.getValue(); if ( value.getSelectables().isEmpty() ) { throw new AnnotationException(