From f52b097b3fb19ec03769eb5e3c23997041b32730 Mon Sep 17 00:00:00 2001 From: marko-bekhta Date: Thu, 12 Jun 2025 13:05:38 +0200 Subject: [PATCH] HV-2116 Do not recreate PersistenceUtil in the built-in JPATraversableResolver --- .../internal/engine/resolver/JPATraversableResolver.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/engine/src/main/java/org/hibernate/validator/internal/engine/resolver/JPATraversableResolver.java b/engine/src/main/java/org/hibernate/validator/internal/engine/resolver/JPATraversableResolver.java index c4386c2b99..6fa9e46c54 100644 --- a/engine/src/main/java/org/hibernate/validator/internal/engine/resolver/JPATraversableResolver.java +++ b/engine/src/main/java/org/hibernate/validator/internal/engine/resolver/JPATraversableResolver.java @@ -8,6 +8,7 @@ import java.lang.invoke.MethodHandles; import jakarta.persistence.Persistence; +import jakarta.persistence.PersistenceUtil; import jakarta.validation.Path; import jakarta.validation.TraversableResolver; @@ -29,6 +30,8 @@ public class JPATraversableResolver implements TraversableResolver { private static final Log LOG = LoggerFactory.make( MethodHandles.lookup() ); + private final PersistenceUtil persistenceUtil = Persistence.getPersistenceUtil(); + @Override public final boolean isReachable(Object traversableObject, Path.Node traversableProperty, Class rootBeanType, Path pathToTraversableObject, ElementType elementType) { if ( LOG.isTraceEnabled() ) { @@ -43,7 +46,7 @@ public final boolean isReachable(Object traversableObject, Path.Node traversable return true; } - return Persistence.getPersistenceUtil().isLoaded( traversableObject, traversableProperty.getName() ); + return persistenceUtil.isLoaded( traversableObject, traversableProperty.getName() ); } @Override