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

    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 Details

    • 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:
    • 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

      <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