From fd8ceaf4e387ac2ce6e8903c6951601f240e5d9e Mon Sep 17 00:00:00 2001 From: Jan Schatteman Date: Fri, 1 Aug 2025 00:04:21 +0200 Subject: [PATCH] HHH-19671 - Avoid issuing a callback warning when a class defines an IdClass and has lifecycle callbacks Signed-off-by: Jan Schatteman --- .../jpa/event/internal/CallbackDefinitionResolver.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackDefinitionResolver.java b/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackDefinitionResolver.java index 6b0dde1a61e5..f1997f307bc3 100644 --- a/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackDefinitionResolver.java +++ b/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackDefinitionResolver.java @@ -17,6 +17,7 @@ import org.hibernate.internal.util.ReflectHelper; import org.hibernate.jpa.event.spi.CallbackDefinition; import org.hibernate.jpa.event.spi.CallbackType; +import org.hibernate.mapping.Component; import org.hibernate.mapping.PersistentClass; import org.hibernate.mapping.Property; import org.hibernate.models.spi.AnnotationDescriptor; @@ -282,7 +283,9 @@ public static void resolveLifecycleCallbacks( // code was added by HHH-12326 collector.addSecondPass( persistentClasses -> { for ( Property property : persistentClass.getDeclaredProperties() ) { - if ( property.isComposite() ) { + if ( property.getValue() instanceof Component component + // embedded components don't have their own class, so no need to check callbacks (see HHH-19671) + && !component.isEmbedded() ) { try { final Class mappedClass = persistentClass.getMappedClass(); for ( CallbackType type : CallbackType.values() ) {