Interface ItemSqlMapper<Q extends FlexibleRelationalPathBase<R>,R>

Type Parameters:
Q - entity path owning the mapped item
R - row type with the mapped item
All Known Subinterfaces:
UpdatableItemSqlMapper<Q,R>
All Known Implementing Classes:
DefaultItemSqlMapper, ExtensionItemSqlMapper, SqaleItemSqlMapper

public interface ItemSqlMapper<Q extends FlexibleRelationalPathBase<R>,R>
Defines contract for mapping component holding information how an item (from schema/prism world) is to be processed when interpreting query.
  • Method Details

    • primaryPath

      @Nullable @Nullable com.querydsl.core.types.Expression<?> primaryPath(Q entityPath, ItemDefinition<?> definition) throws QueryException
      Returns primary path for provided entity path - usable for ordering.
      Throws:
      QueryException
    • createFilterProcessor

      @Nullable <T extends ValueFilter<?, ?>> @Nullable ItemValueFilterProcessor<T> createFilterProcessor(SqlQueryContext<?,?,?> sqlQueryContext)
      Creates ItemValueFilterProcessor based on this mapping. Provided SqlQueryContext is used to figure out the query paths when this is executed (as the entity path instance is not yet available when the mapping is configured in a declarative manner). The type of the returned processor is adapted to the client code needs for convenience. Also the type of the provided context is flexible, but with proper mapping it's all safe. [NOTE] This may return null if the subclass supports other type of mapping for this item, but not filtering for queries (e.g. update only item).
    • createRightHandProcessor

      @Nullable @Nullable RightHandProcessor createRightHandProcessor(SqlQueryContext<?,?,?> sqlQueryContext)