Class QObjectReferenceFullObjectMapping<OS extends ObjectType,OQ extends QObject<OR>,OR extends MObject>  
java.lang.Object
com.evolveum.midpoint.repo.sqlbase.mapping.QueryModelMapping<S,Q,R>
  
com.evolveum.midpoint.repo.sqlbase.mapping.QueryTableMapping<S,Q,R>
  
com.evolveum.midpoint.repo.sqale.mapping.SqaleTableMapping<ObjectReferenceType,Q,R>
  
com.evolveum.midpoint.repo.sqale.qmodel.ref.QReferenceMapping<QObjectReference<OR>,MReference,OQ,OR>
   
com.evolveum.midpoint.repo.sqale.qmodel.ref.QObjectReferenceMapping<OS,OQ,OR>
  
com.evolveum.midpoint.repo.sqale.qmodel.ref.QObjectReferenceFullObjectMapping<OS,OQ,OR>  
- All Implemented Interfaces:
- QOwnedByMapping<ObjectReferenceType,,- MReference, - OR> - SqaleMappingMixin<ObjectReferenceType,,- QObjectReference<OR>, - MReference> - QSeparatelySerializedItem<QObjectReferenceWithMeta<OR>,- MReference> 
public class QObjectReferenceFullObjectMapping<OS extends ObjectType,OQ extends QObject<OR>,OR extends MObject>  
extends QObjectReferenceMapping<OS,OQ,OR>
implements QSeparatelySerializedItem<QObjectReferenceWithMeta<OR>,MReference>   
- 
Field SummaryFields inherited from class com.evolveum.midpoint.repo.sqale.qmodel.ref.QObjectReferenceMappinginstanceArchetype, instanceCreateApprover, instanceDelegated, instanceEffectiveMark, instanceInclude, instanceModifyApprover, instanceParentOrg, instancePersona, instanceProjection, instanceResourceBusinessConfigurationApprover, instanceRoleMembershipFields inherited from class com.evolveum.midpoint.repo.sqale.qmodel.ref.QReferenceMappingDEFAULT_ALIAS_NAME, MAPPING_BY_OWNER_TYPE_AND_PATH, referencePathFields inherited from class com.evolveum.midpoint.repo.sqlbase.mapping.QueryModelMappinglogger
- 
Constructor SummaryConstructorsConstructorDescriptionQObjectReferenceFullObjectMapping(Class<? extends ObjectType> baseType, ItemPath path, String tableName, String defaultAliasName, @NotNull SqaleRepoContext repositoryContext, @NotNull Supplier<QueryTableMapping<?, TQ, TR>> targetMappingSupplier, @Nullable Supplier<QueryTableMapping<OS, OQ, OR>> ownerMappingSupplier, @Nullable BiFunction<QObjectReference<OR>, OQ, com.querydsl.core.types.Predicate> ownerJoin, @Nullable Class<?> ownerType, @Nullable ItemPath referencePath) 
- 
Method SummaryModifier and TypeMethodDescriptionvoidafterModify(SqaleUpdateContext<ObjectReferenceType, QObjectReference<OR>, MReference> updateContext) Method called from `SqaleUpdateContext.finishExecutionOwn()` for containers.com.querydsl.core.types.PredicateallOwnedBy(QObjectReferenceWithMeta<OR> q, Collection<UUID> oidList) protected voidapplyToOwner(ObjectType owner, ObjectReferenceType candidate) <C extends Containerable>
 byte[]com.querydsl.core.types.Path<?>[]getOwner(com.querydsl.core.Tuple row, QObjectReferenceWithMeta<OR> path) Class<? extends Item<? extends PrismValue,?>> booleanhasFullObject(com.querydsl.core.Tuple row, QObjectReferenceWithMeta<OR> path) protected voidinitRowObject(MReference row, ObjectReferenceType reference) insert(ObjectReferenceType reference, OR ownerRow, JdbcSession jdbcSession) There is no need to override this, only reference creation is different and that is covered byQReferenceMapping.newRowObject(Object)including setting FK columns.protected QObjectReferenceWithMeta<OR>newAliasInstance(String alias) Method returning new instance ofEntityPath- to be implemented by sub-mapping.newRowObject(MObject ownerRow) Defines a contract for creating the reference for the provided owner row.com.querydsl.core.types.OrderSpecifier<?>orderSpecifier(QObjectReferenceWithMeta<OR> orqObjectReferenceWithMeta) protected booleanrequiresParent(com.querydsl.core.Tuple t, QObjectReference<OR> entityPath) toSchemaObject(MReference row) Transforms row ofQueryTableMappingtype to schema typeQueryTableMapping.toSchemaObjectEmbedded(com.querydsl.core.Tuple row, QObjectReferenceWithMeta<OR> alias) Methods inherited from class com.evolveum.midpoint.repo.sqale.qmodel.ref.QObjectReferenceMappingcorrelationPredicate, createRowTransformer, getForArchetype, getForCreateApprover, getForDelegated, getForEffectiveMark, getForInclude, getForModifyApprover, getForParentOrg, getForPersona, getForProjection, getForResourceBusinessConfigurationApprover, getForRoleMembership, initForArchetype, initForCreateApprover, initForDelegated, initForEffectiveMark, initForInclude, initForModifyApprover, initForParentOrg, initForPersona, initForProjection, initForResourceBusinessConfigurationApprover, initForRoleMembershipMethods inherited from class com.evolveum.midpoint.repo.sqale.qmodel.ref.QReferenceMappinggetByOwnerTypeAndPath, init, registerByOwnerTypeAndPathMethods inherited from class com.evolveum.midpoint.repo.sqale.mapping.SqaleTableMappingaddExtensionMapping, binaryMapper, booleanMapper, createFullObject, definitionDerivation, definitionDerivationKey, doubleMapper, enumMapper, fullObjectItemsToSkip, getDefinition, getPartitionManager, insert, integerMapper, multiPolyStringMapper, multiStringMapper, multiUriMapper, multiValueMapper, needsInitialization, objectReference, objectReference, objectTypeToQName, parseSchemaObject, parseSchemaObject, polyStringMapper, preprocessCacheableUris, processCacheableRelation, processCacheableUri, processCacheableUri, processCacheableUris, processExtensionColumns, processExtensions, repositoryContext, resolveIdToUri, resolveReferenceNames, resolveUriIdToQName, schemaTypeToObjectType, setPolyString, setReference, storeRefs, stringMapper, stringsToArray, timestampMapper, toSchemaObject, toSchemaObjectComplete, toSchemaObjectCompleteSafe, toSchemaObjectInternal, uriMapper, uuidMapperMethods inherited from class com.evolveum.midpoint.repo.sqlbase.mapping.QueryTableMappingaddDetailFetchMapper, addExtensionColumn, appendPaths, defaultAlias, defaultAliasName, detailFetchMappers, getExtensionColumns, joinOn, longMapper, newAlias, newRowObject, paths, prismContext, selectExpressions, selectExpressionsWithCustomColumns, tableName, toString, updateGetOptionsMethods inherited from class com.evolveum.midpoint.repo.sqlbase.mapping.QueryModelMappingaddItemMapping, addRelationResolver, getItemMapper, getItemMappings, getRelationResolver, itemDefinition, itemMapper, queryType, relationResolver, schemaTypeMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.evolveum.midpoint.repo.sqale.qmodel.object.QSeparatelySerializedItemtableNameMethods inherited from interface com.evolveum.midpoint.repo.sqale.mapping.SqaleMappingMixinaddAuditRefMapping, addContainerTableMapping, addExtensionMapping, addItemMapping, addNestedMapping, addRefMapping, addRefMapping, addRelationResolver, queryType
- 
Constructor Details- 
QObjectReferenceFullObjectMappingpublic QObjectReferenceFullObjectMapping(Class<? extends ObjectType> baseType, ItemPath path, String tableName, String defaultAliasName, @NotNull @NotNull SqaleRepoContext repositoryContext, @NotNull @NotNull Supplier<QueryTableMapping<?, TQ, TR>> targetMappingSupplier, @Nullable @Nullable Supplier<QueryTableMapping<OS, OQ, OR>> ownerMappingSupplier, @Nullable @Nullable BiFunction<QObjectReference<OR>, OQ, com.querydsl.core.types.Predicate> ownerJoin, @Nullable @Nullable Class<?> ownerType, @Nullable @Nullable ItemPath referencePath) 
 
- 
- 
Method Details- 
newAliasInstanceDescription copied from class:QueryTableMappingMethod returning new instance ofEntityPath- to be implemented by sub-mapping. This will create entity path without any extension columns, seeQueryTableMapping.newAlias(java.lang.String)for that.- Overrides:
- newAliasInstancein class- QObjectReferenceMapping<OS extends ObjectType,- OQ extends QObject<OR>, - OR extends MObject> 
 
- 
newRowObjectDescription copied from class:QReferenceMappingDefines a contract for creating the reference for the provided owner row.- Specified by:
- newRowObjectin interface- QOwnedByMapping<OS extends ObjectType,- OQ extends QObject<OR>, - OR extends MObject> 
- Overrides:
- newRowObjectin class- QObjectReferenceMapping<OS extends ObjectType,- OQ extends QObject<OR>, - OR extends MObject> 
 
- 
initRowObject- Overrides:
- initRowObjectin class- QReferenceMapping<QObjectReference<OR extends MObject>,- MReference, - OQ extends QObject<OR>, - OR extends MObject> 
- Throws:
- SchemaException
 
- 
createFullObjectpublic <C extends Containerable> byte[] createFullObject(ObjectReferenceType ref) throws SchemaException - Throws:
- SchemaException
 
- 
insertpublic MReference insert(ObjectReferenceType reference, OR ownerRow, JdbcSession jdbcSession) throws SchemaException Description copied from class:QReferenceMappingThere is no need to override this, only reference creation is different and that is covered byQReferenceMapping.newRowObject(Object)including setting FK columns. All the other columns are based on a single schema type, so there is no variation.- Specified by:
- insertin interface- QOwnedByMapping<OS extends ObjectType,- OQ extends QObject<OR>, - OR extends MObject> 
- Overrides:
- insertin class- QReferenceMapping<QObjectReference<OR extends MObject>,- MReference, - OQ extends QObject<OR>, - OR extends MObject> 
- Throws:
- SchemaException
 
- 
afterModifypublic void afterModify(SqaleUpdateContext<ObjectReferenceType, QObjectReference<OR>, throws SchemaExceptionMReference> updateContext) Description copied from interface:SqaleMappingMixinMethod called from `SqaleUpdateContext.finishExecutionOwn()` for containers. This can be handy when more than just column set is required, e.g. to refresh fullObject, etc.- Specified by:
- afterModifyin interface- SqaleMappingMixin<OS extends ObjectType,- OQ extends QObject<OR>, - OR extends MObject> 
- Overrides:
- afterModifyin class- QObjectReferenceMapping<OS extends ObjectType,- OQ extends QObject<OR>, - OR extends MObject> 
- Throws:
- SchemaException
 
- 
hasFullObject- Specified by:
- hasFullObjectin interface- QSeparatelySerializedItem<OS extends ObjectType,- OQ extends QObject<OR>> 
 
- 
fullObjectExpressions- Specified by:
- fullObjectExpressionsin interface- QSeparatelySerializedItem<OS extends ObjectType,- OQ extends QObject<OR>> 
 
- 
getPrismItemType- Specified by:
- getPrismItemTypein interface- QSeparatelySerializedItem<OS extends ObjectType,- OQ extends QObject<OR>> 
 
- 
allOwnedBypublic com.querydsl.core.types.Predicate allOwnedBy(QObjectReferenceWithMeta<OR> q, Collection<UUID> oidList) - Specified by:
- allOwnedByin interface- QSeparatelySerializedItem<OS extends ObjectType,- OQ extends QObject<OR>> 
 
- 
toSchemaObjectDescription copied from class:QueryTableMappingTransforms row ofQueryTableMappingtype to schema typeQueryTableMapping. If pre-generated bean is used as row it does not include extension (dynamic) columns, which is OK if extension columns are used only for query and their information is still contained in the object somehow else (e.g. full object LOB). Alternative is to dynamically generate the list of select expressions reading directly from theTuple- seeQueryTableMapping.toSchemaObject(Tuple, FlexibleRelationalPathBase, JdbcSession, Collection).- Overrides:
- toSchemaObjectin class- SqaleTableMapping<ObjectReferenceType,- QObjectReference<OR extends MObject>, - MReference> 
- Throws:
- SchemaException
 
- 
toSchemaObjectEmbeddedpublic PrismReferenceValue toSchemaObjectEmbedded(com.querydsl.core.Tuple row, QObjectReferenceWithMeta<OR> alias) throws SchemaException - Specified by:
- toSchemaObjectEmbeddedin interface- QSeparatelySerializedItem<OS extends ObjectType,- OQ extends QObject<OR>> 
- Throws:
- SchemaException
 
- 
getOwner- Specified by:
- getOwnerin interface- QSeparatelySerializedItem<OS extends ObjectType,- OQ extends QObject<OR>> 
 
- 
createAlias- Specified by:
- createAliasin interface- QSeparatelySerializedItem<OS extends ObjectType,- OQ extends QObject<OR>> 
 
- 
getItemPath- Specified by:
- getItemPathin interface- QSeparatelySerializedItem<OS extends ObjectType,- OQ extends QObject<OR>> 
 
- 
requiresParent- Overrides:
- requiresParentin class- QObjectReferenceMapping<OS extends ObjectType,- OQ extends QObject<OR>, - OR extends MObject> 
 
- 
applyToOwner- Overrides:
- applyToOwnerin class- QObjectReferenceMapping<OS extends ObjectType,- OQ extends QObject<OR>, - OR extends MObject> 
- Throws:
- SchemaException
 
- 
orderSpecifierpublic com.querydsl.core.types.OrderSpecifier<?> orderSpecifier(QObjectReferenceWithMeta<OR> orqObjectReferenceWithMeta) - Specified by:
- orderSpecifierin interface- QSeparatelySerializedItem<OS extends ObjectType,- OQ extends QObject<OR>> 
 
 
-