diff --git a/rsql-jpa/src/main/java/io/github/perplexhub/rsql/RSQLJPAContext.java b/rsql-jpa/src/main/java/io/github/perplexhub/rsql/RSQLJPAContext.java index 9d3350d6..f07408e7 100644 --- a/rsql-jpa/src/main/java/io/github/perplexhub/rsql/RSQLJPAContext.java +++ b/rsql-jpa/src/main/java/io/github/perplexhub/rsql/RSQLJPAContext.java @@ -2,13 +2,15 @@ import javax.persistence.criteria.Path; import javax.persistence.metamodel.Attribute; +import javax.persistence.metamodel.ManagedType; import lombok.Value; @Value(staticConstructor = "of") class RSQLJPAContext { - private Path path; - private Attribute attribute; + Path path; + Attribute attribute; + ManagedType managedType; } diff --git a/rsql-jpa/src/main/java/io/github/perplexhub/rsql/RSQLJPAPredicateConverter.java b/rsql-jpa/src/main/java/io/github/perplexhub/rsql/RSQLJPAPredicateConverter.java index 7f6d013f..6b587f96 100644 --- a/rsql-jpa/src/main/java/io/github/perplexhub/rsql/RSQLJPAPredicateConverter.java +++ b/rsql-jpa/src/main/java/io/github/perplexhub/rsql/RSQLJPAPredicateConverter.java @@ -72,6 +72,7 @@ RSQLJPAContext findPropertyPath(String propertyPath, Path startRoot) { RSQLJPAContext context = findPropertyPath(mappedProperty, root); root = context.getPath(); attribute = context.getAttribute(); + classMetadata = context.getManagedType(); } else { if (!hasPropertyName(mappedProperty, classMetadata)) { if (Modifier.isAbstract(classMetadata.getJavaType().getModifiers())) { @@ -153,7 +154,7 @@ RSQLJPAContext findPropertyPath(String propertyPath, Path startRoot) { accessControl(type, attribute.getName()); } - return RSQLJPAContext.of(root, attribute); + return RSQLJPAContext.of(root, attribute, classMetadata); } private String getKeyJoin(Path root, String mappedProperty) {