org.springframework.data.querydsl.binding

## Class QuerydslBindings

- java.lang.Object
- - org.springframework.data.querydsl.binding.QuerydslBindings

    public class QuerydslBindings
    extends Object

`QuerydslBindings` allows definition of path specific bindings.

     new QuerydslBindings() {
       {
         bind(QUser.user.address.city).first((path, value) -> path.like(value.toString()));
         bind(String.class).first((path, value) -> path.like(value.toString()));
       }
     }

The bindings can either handle a single - see `QuerydslBindings.PathBinder.first(SingleValueBinding)` - (the first in case multiple ones are supplied) or multiple - see `QuerydslBindings.PathBinder.all(MultiValueBinding)` - value binding. If exactly one path is deployed, an `QuerydslBindings.AliasingPathBinder` is returned which - as the name suggests - allows aliasing of paths, i.e. exposing the path under a different name.

`QuerydslBindings` are usually manipulated using a `QuerydslBinderCustomizer`, either implemented directly or using a default method on a Spring Data repository.

Since:
  1.11
Author:
  Christoph Strobl, Oliver Gierke, Mark Paluch
See Also:
  `QuerydslBinderCustomizer`

### Nested Class Summary

Nested Classes
`class` `QuerydslBindings.AliasingPathBinder<P extends com.querydsl.core.types.Path<? extends T>,T>` A special `QuerydslBindings.PathBinder` that additionally registers the binding under a dedicated alias.
`class` `QuerydslBindings.PathBinder<P extends com.querydsl.core.types.Path<? extends T>,T>` A binder for `Path`s.
`class` `QuerydslBindings.TypeBinder<T>` A binder for types.

### Constructor Summary

Constructors
Constructor and Description
`QuerydslBindings()` Creates a new `QuerydslBindings` instance.

### Method Summary

All Methods Instance Methods Concrete Methods
`<T> QuerydslBindings.TypeBinder<T>` `bind(Class<T> type)` Returns a new `QuerydslBindings.TypeBinder` for the given type.
`<T extends com.querydsl.core.types.Path<S>,S> QuerydslBindings.PathBinder<T,S>` `bind(T... paths)` Returns a new `QuerydslBindings.PathBinder` for the given `Path`s to define bindings for them.
`<T extends com.querydsl.core.types.Path<S>,S> QuerydslBindings.AliasingPathBinder<T,S>` `bind(T path)` Returns an `QuerydslBindings.AliasingPathBinder` for the given `Path` to define bindings for them.
`QuerydslBindings` `excludeUnlistedProperties(boolean excludeUnlistedProperties)` Returns whether to exclude all properties for which no explicit binding has been defined or it has been explicitly allowed.
`void` `excluding(com.querydsl.core.types.Path<?>... paths)` Exclude properties from binding.
`<S extends com.querydsl.core.types.Path<? extends T>,T> Optional<MultiValueBinding<S,T>>` `getBindingForPath(org.springframework.data.querydsl.binding.PathInformation path)` Returns the `SingleValueBinding` for the given `PropertyPath`.
`void` `including(com.querydsl.core.types.Path<?>... paths)` Include properties for binding.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### QuerydslBindings

    public QuerydslBindings()

Creates a new `QuerydslBindings` instance.

### Method Detail

#### bind

    public final <T extends com.querydsl.core.types.Path<S>,S> QuerydslBindings.AliasingPathBinder<T,S> bind(T path)

Returns an `QuerydslBindings.AliasingPathBinder` for the given `Path` to define bindings for them.

Parameters:
  `path` - must not be null.
Returns:

#### bind

    @SafeVarargs
    public final <T extends com.querydsl.core.types.Path<S>,S> QuerydslBindings.PathBinder<T,S> bind(T... paths)

Returns a new `QuerydslBindings.PathBinder` for the given `Path`s to define bindings for them.

Parameters:
  `paths` - must not be null or empty.
Returns:

#### bind

    public final <T> QuerydslBindings.TypeBinder<T> bind(Class<T> type)

Returns a new `QuerydslBindings.TypeBinder` for the given type.

Parameters:
  `type` - must not be null.
Returns:

#### excluding

    public final void excluding(com.querydsl.core.types.Path<?>... paths)

Exclude properties from binding. Exclusion of all properties of a nested type can be done by exclusion on a higher level. E.g. `address` would exclude both `address.city` and `address.street`.

Parameters:
  `paths` - must not be null or empty.

#### including

    public final void including(com.querydsl.core.types.Path<?>... paths)

Include properties for binding. Include the property considered a binding candidate.

Parameters:
  `properties` - must not be null or empty.

#### excludeUnlistedProperties

    public final QuerydslBindings excludeUnlistedProperties(boolean excludeUnlistedProperties)

Returns whether to exclude all properties for which no explicit binding has been defined or it has been explicitly allowed. This defaults to false which means that for properties without an explicitly defined binding a type specific default binding will be applied.

Parameters:
  `excludeUnlistedProperties` -
Returns:
See Also:
  `including(Path...)`

#### getBindingForPath

    public <S extends com.querydsl.core.types.Path<? extends T>,T> Optional<MultiValueBinding<S,T>> getBindingForPath(org.springframework.data.querydsl.binding.PathInformation path)

Returns the `SingleValueBinding` for the given `PropertyPath`. Prefers a path configured for the specific path but falls back to the builder registered for a given type.

Parameters:
  `path` - must not be null.
Returns:
  can be null.