Interface PredicateAliasResolver

  • All Known Implementing Classes:
    DefaultPredicateAliasResolver

    public interface PredicateAliasResolver
    Implementation is responsible for predicate aliases lookup in a query
    Author:
    Vlad on 10-Feb-17.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      com.querydsl.core.types.Predicate resolveOperation​(com.querydsl.core.types.Operation<?> operation, List<JoinDescription> joins, Set<com.querydsl.core.types.Path<?>> usedAliases)
      Resolves all correct paths used in specified operation
      <T> com.querydsl.core.types.Path<T> resolvePath​(com.querydsl.core.types.Path<T> path, Map<AnnotatedElement,​List<JoinDescription>> classToJoin, Set<com.querydsl.core.types.Path<?>> usedAliases)
      If alias from path is not present in usedAliases, try to find it in joins.
      com.querydsl.core.types.Predicate resolvePredicate​(com.querydsl.core.types.Predicate predicate, List<JoinDescription> joins, Set<com.querydsl.core.types.Path<?>> usedAliases)
      Resolves all correct paths used in specified predicate
    • Method Detail

      • resolvePredicate

        com.querydsl.core.types.Predicate resolvePredicate​(com.querydsl.core.types.Predicate predicate,
                                                           List<JoinDescription> joins,
                                                           Set<com.querydsl.core.types.Path<?>> usedAliases)
        Resolves all correct paths used in specified predicate
        Parameters:
        predicate - original predicate
        joins - all query joins
        usedAliases - paths that are present in joins
        Returns:
        rebuilt predicate
        See Also:
        resolvePath(Path, Map, Set)
      • resolveOperation

        com.querydsl.core.types.Predicate resolveOperation​(com.querydsl.core.types.Operation<?> operation,
                                                           List<JoinDescription> joins,
                                                           Set<com.querydsl.core.types.Path<?>> usedAliases)
        Resolves all correct paths used in specified operation
        Parameters:
        operation - original operation
        joins - all query joins
        usedAliases - paths that are present in joins
        Returns:
        rebuilt predicate
        See Also:
        resolvePath(Path, Map, Set)
      • resolvePath

        <T> com.querydsl.core.types.Path<T> resolvePath​(com.querydsl.core.types.Path<T> path,
                                                        Map<AnnotatedElement,​List<JoinDescription>> classToJoin,
                                                        Set<com.querydsl.core.types.Path<?>> usedAliases)
        If alias from path is not present in usedAliases, try to find it in joins. If unambiguous alias is found, return rebuilt Path with corresponding alias.

        It other words, it allows to use QStatus.status.some... instead of J#path(QStatusParent.parent, QStatus.status (when target path is unambiguous, i.e. exactly one join with java type Status is present)

        Type Parameters:
        T - any
        Parameters:
        path - original path
        classToJoin - java type to present joins
        usedAliases - paths that are present in joins
        Returns:
        rebuilt or original path