Interface SqaleMappingMixin<S,Q extends FlexibleRelationalPathBase<R>,R>

Type Parameters:
S - schema type
Q - type of entity path
R - row type related to the SqaleMappingMixin
All Known Implementing Classes:
QAbstractRoleMapping, QAccessCertificationCampaignMapping, QAccessCertificationCaseMapping, QAccessCertificationDefinitionMapping, QAccessCertificationWorkItemMapping, QAccessCertificationWorkItemReferenceMapping, QAffectedObjectsMapping, QArchetypeMapping, QAssignmentHolderMapping, QAssignmentMapping, QAssignmentReferenceMapping, QAuditDeltaMapping, QAuditEventRecordMapping, QAuditRefValueMapping, QCaseMapping, QCaseWorkItemMapping, QCaseWorkItemReferenceMapping, QClusterObjectMapping, QConnectorHostMapping, QConnectorMapping, QContainerMapping, QDashboardMapping, QFocusIdentityMapping, QFocusMapping, QFormMapping, QFunctionLibraryMapping, QGenericObjectMapping, QLookupTableMapping, QLookupTableRowMapping, QMarkMapping, QMessageTemplateMapping, QNodeMapping, QObjectCollectionMapping, QObjectMapping, QObjectReferenceMapping, QObjectTemplateMapping, QOperationExecutionMapping, QOrgMapping, QProcessedObjectEventMarkReferenceMapping, QProcessedObjectMapping, QReferenceMapping, QReportDataMapping, QReportMapping, QResourceMapping, QRoleMapping, QSecurityPolicyMapping, QSequenceMapping, QServiceMapping, QSessionObjectMapping, QShadowMapping, QSimulationResultMapping, QSystemConfigurationMapping, QTaskMapping, QTriggerMapping, QUserMapping, QValuePolicyMapping, SqaleNestedMapping, SqaleTableMapping

public interface SqaleMappingMixin<S,Q extends FlexibleRelationalPathBase<R>,R>
Mix of common mapping support methods that is needed on both SqaleNestedMapping and SqaleTableMapping which are in separate branches of the hierarchy starting in repo-sqlbase - which is out of reach and sqale-specific functionality can't go there.
  • Method Details

    • queryType

      Class<Q> queryType()
    • addRelationResolver

      QueryModelMapping<S,Q,R> addRelationResolver(@NotNull @NotNull QName itemName, @NotNull @NotNull ItemRelationResolver<Q,R,?,?> itemRelationResolver)
    • addItemMapping

      QueryModelMapping<S,Q,R> addItemMapping(@NotNull @NotNull QName itemName, @NotNull @NotNull ItemSqlMapper<Q,R> itemMapper)
    • addNestedMapping

      default <N extends Containerable> SqaleNestedMapping<N,Q,R> addNestedMapping(@NotNull @NotNull QName itemName, @NotNull @NotNull Class<N> nestedSchemaType)
      Defines nested mapping for container embedded in the same table. This includes path resolver for queries and delta processor for modifications.
      Type Parameters:
      N - schema type of the nested container
    • addRefMapping

      default <TQ extends QReference<TR, R>, TR extends MReference> SqaleMappingMixin<S,Q,R> addRefMapping(@NotNull @NotNull QName itemName, @NotNull @NotNull QReferenceMapping<TQ,TR,Q,R> referenceMapping)
      Defines multi-value reference mapping (refs in table) for both query and modifications.
    • addRefMapping

      default <TS, TQ extends QObject<TR>, TR extends MObject> SqaleMappingMixin<S,Q,R> addRefMapping(@NotNull @NotNull QName itemName, @NotNull @NotNull Function<Q,UuidPath> rootToOidPath, @Nullable @Nullable Function<Q,com.querydsl.core.types.dsl.EnumPath<MObjectType>> rootToTypePath, @Nullable @Nullable Function<Q,com.querydsl.core.types.dsl.NumberPath<Integer>> rootToRelationIdPath, @NotNull @NotNull Supplier<QueryTableMapping<TS,TQ,TR>> targetMappingSupplier)
      Defines single-value reference mapping for both query and modifications, columns embedded in the table.
    • addAuditRefMapping

      default <TS, TQ extends QObject<TR>, TR extends MObject> SqaleMappingMixin<S,Q,R> addAuditRefMapping(@NotNull @NotNull QName itemName, @NotNull @NotNull Function<Q,UuidPath> rootToOidPath, @Nullable @Nullable Function<Q,com.querydsl.core.types.dsl.EnumPath<MObjectType>> rootToTypePath, @NotNull @NotNull Function<Q,com.querydsl.core.types.dsl.StringPath> rootToTargetNamePath, @NotNull @NotNull Supplier<QueryTableMapping<TS,TQ,TR>> targetMappingSupplier)
      Defines single-value reference mapping for query, columns embedded in the table.
    • addContainerTableMapping

      default <C extends Containerable, TQ extends QContainer<TR, R>, TR extends MContainer> SqaleMappingMixin<S,Q,R> addContainerTableMapping(@NotNull @NotNull ItemName itemName, @NotNull @NotNull QContainerMapping<C,TQ,TR,R> containerMapping, @NotNull @NotNull BiFunction<Q,TQ,com.querydsl.core.types.Predicate> joinPredicate)
      Defines table mapping for multi-value container owned by an object or another container. This includes path resolver for queries and delta processor for modifications.
      Type Parameters:
      C - schema type of the container mapped to the target table
      TQ - entity query type of the container table
      TR - row type of the container table, related to SqaleMappingMixin
    • addExtensionMapping

      default SqaleMappingMixin<S,Q,R> addExtensionMapping(@NotNull @NotNull ItemName itemName, @NotNull @NotNull MExtItemHolderType holderType, @NotNull @NotNull Function<Q,JsonbPath> rootToPath, @NotNull @NotNull SqaleRepoContext repoContext)
    • afterModify

      default void afterModify(SqaleUpdateContext<S,Q,R> updateContext) throws SchemaException
      Method called from `SqaleUpdateContext.finishExecutionOwn()` for containers. This can be handy when more than just column set is required, e.g. to refresh fullObject, etc.
      Throws:
      SchemaException