From d031fb985f92568092f936d4c3dbebdb34161ff8 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Wed, 21 Dec 2022 10:14:18 +0100 Subject: [PATCH 1/2] Prepare issue branch. --- pom.xml | 2 +- spring-data-envers/pom.xml | 4 ++-- spring-data-jpa-distribution/pom.xml | 2 +- spring-data-jpa/pom.xml | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index c94ae35cd5..7070e8643d 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.data spring-data-jpa-parent - 3.1.0-SNAPSHOT + 3.1.x-GH-2735-SNAPSHOT pom Spring Data JPA Parent diff --git a/spring-data-envers/pom.xml b/spring-data-envers/pom.xml index db915d7c3b..45cccfbcc4 100755 --- a/spring-data-envers/pom.xml +++ b/spring-data-envers/pom.xml @@ -5,12 +5,12 @@ org.springframework.data spring-data-envers - 3.1.0-SNAPSHOT + 3.1.x-GH-2735-SNAPSHOT org.springframework.data spring-data-jpa-parent - 3.1.0-SNAPSHOT + 3.1.x-GH-2735-SNAPSHOT ../pom.xml diff --git a/spring-data-jpa-distribution/pom.xml b/spring-data-jpa-distribution/pom.xml index a5cb2f09b5..1c073c8af1 100644 --- a/spring-data-jpa-distribution/pom.xml +++ b/spring-data-jpa-distribution/pom.xml @@ -14,7 +14,7 @@ org.springframework.data spring-data-jpa-parent - 3.1.0-SNAPSHOT + 3.1.x-GH-2735-SNAPSHOT ../pom.xml diff --git a/spring-data-jpa/pom.xml b/spring-data-jpa/pom.xml index 95a83aac44..f8a5d3df94 100644 --- a/spring-data-jpa/pom.xml +++ b/spring-data-jpa/pom.xml @@ -6,7 +6,7 @@ org.springframework.data spring-data-jpa - 3.1.0-SNAPSHOT + 3.1.x-GH-2735-SNAPSHOT Spring Data JPA Spring Data module for JPA repositories. @@ -15,7 +15,7 @@ org.springframework.data spring-data-jpa-parent - 3.1.0-SNAPSHOT + 3.1.x-GH-2735-SNAPSHOT ../pom.xml From 8ebe54097750b99ae4aebc4e6ff5329922322220 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Wed, 21 Dec 2022 11:55:21 +0100 Subject: [PATCH 2/2] Add missing reflection configuration for AbstractPersistable & -Auditable. --- .../data/jpa/repository/aot/JpaRuntimeHints.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/aot/JpaRuntimeHints.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/aot/JpaRuntimeHints.java index 8141aa4791..648d2f359f 100644 --- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/aot/JpaRuntimeHints.java +++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/aot/JpaRuntimeHints.java @@ -18,11 +18,14 @@ import jakarta.persistence.NamedEntityGraph; import java.util.Arrays; +import java.util.List; import org.springframework.aot.hint.MemberCategory; import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.RuntimeHintsRegistrar; import org.springframework.aot.hint.TypeReference; +import org.springframework.data.jpa.domain.AbstractAuditable; +import org.springframework.data.jpa.domain.AbstractPersistable; import org.springframework.data.jpa.domain.support.AuditingBeanFactoryPostProcessor; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import org.springframework.data.jpa.repository.EntityGraph; @@ -69,6 +72,10 @@ public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) // needs to present for evaluating default attribute values in JpaQueryMethod hints.reflection().registerType(Query.class, hint -> hint.withMembers(MemberCategory.INVOKE_PUBLIC_METHODS)); + // make sure annotations on the fields are visible and allow reflection on protected methods + hints.reflection().registerTypes(List.of(TypeReference.of(AbstractPersistable.class), TypeReference.of(AbstractAuditable.class)), hint -> + hint.withMembers(MemberCategory.DECLARED_FIELDS, MemberCategory.INVOKE_DECLARED_METHODS)); + if (QuerydslUtils.QUERY_DSL_PRESENT) { hints.reflection().registerType(QuerydslJpaPredicateExecutor.class,