diff --git a/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/singleUseObject/JpaSingleUseObjectModelCriteriaBuilder.java b/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/singleUseObject/JpaSingleUseObjectModelCriteriaBuilder.java index 9145d6326b9..57543715696 100644 --- a/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/singleUseObject/JpaSingleUseObjectModelCriteriaBuilder.java +++ b/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/singleUseObject/JpaSingleUseObjectModelCriteriaBuilder.java @@ -27,6 +27,7 @@ import org.keycloak.models.ActionTokenValueModel; import org.keycloak.models.map.storage.CriterionNotSupportedException; import org.keycloak.models.map.storage.jpa.JpaModelCriteriaBuilder; +import org.keycloak.models.map.storage.jpa.role.JpaPredicateFunction; import org.keycloak.models.map.storage.jpa.singleUseObject.entity.JpaSingleUseObjectEntity; import org.keycloak.storage.SearchableModelField; @@ -48,7 +49,7 @@ public JpaSingleUseObjectModelCriteriaBuilder() { super(JpaSingleUseObjectModelCriteriaBuilder::new); } - public JpaSingleUseObjectModelCriteriaBuilder(BiFunction, Predicate> predicateFunc) { + public JpaSingleUseObjectModelCriteriaBuilder(JpaPredicateFunction predicateFunc) { super(JpaSingleUseObjectModelCriteriaBuilder::new, predicateFunc); } @@ -62,13 +63,13 @@ public JpaSingleUseObjectModelCriteriaBuilder compare(SearchableModelField + return new JpaSingleUseObjectModelCriteriaBuilder((cb, query, root) -> cb.equal(cb.function("->>", String.class, root.get("metadata"), cb.literal(FIELD_TO_JSON_PROP.get(modelField.getName()))), value[0]) ); } else if(modelField == ActionTokenValueModel.SearchableFields.OBJECT_KEY) { validateValue(value, modelField, op, String.class); - return new JpaSingleUseObjectModelCriteriaBuilder((cb, root) -> + return new JpaSingleUseObjectModelCriteriaBuilder((cb, query, root) -> cb.equal(root.get(modelField.getName()), value[0]) ); } else {