From 6eca6c99fc02afcf7ecda45c0783ccfebfbd86d8 Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Wed, 24 Apr 2019 14:55:03 +0200 Subject: [PATCH] DATAJPA-1530 - Use ProxyUtils to detect Hibernate proxies. Original pull request: #376. --- .../repository/support/JpaMetamodelEntityInformation.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformation.java b/src/main/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformation.java index 8b5e896f5..a88334bce 100644 --- a/src/main/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformation.java +++ b/src/main/java/org/springframework/data/jpa/repository/support/JpaMetamodelEntityInformation.java @@ -37,9 +37,9 @@ import org.springframework.beans.BeanWrapperImpl; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.data.jpa.util.JpaMetamodel; import org.springframework.data.util.DirectFieldAccessFallbackBeanWrapper; +import org.springframework.data.util.ProxyUtils; import org.springframework.lang.Nullable; import org.springframework.util.Assert; -import org.springframework.util.ClassUtils; /** * Implementation of {@link org.springframework.data.repository.core.EntityInformation} that uses JPA {@link Metamodel} @@ -352,7 +352,7 @@ public class JpaMetamodelEntityInformation extends JpaEntityInformationSu // Derive the identifier from the nested entity that is part of the composite key. @SuppressWarnings("rawtypes") JpaMetamodelEntityInformation nestedEntityInformation = new JpaMetamodelEntityInformation( - ClassUtils.getUserClass(value), this.metamodel); + ProxyUtils.getUserClass(value), this.metamodel); if (!nestedEntityInformation.getJavaType().isAnnotationPresent(IdClass.class)) { @@ -421,7 +421,7 @@ public class JpaMetamodelEntityInformation extends JpaEntityInformationSu } try { - ManagedType managedType = this.metamodel.managedType(ClassUtils.getUserClass(value)); + ManagedType managedType = this.metamodel.managedType(ProxyUtils.getUserClass(value)); return managedType != null && managedType.getPersistenceType() == PersistenceType.ENTITY; } catch (IllegalArgumentException iae) { // no mapped type