Class QLookupTableMapping
- 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<S,Q,R>
-
- com.evolveum.midpoint.repo.sqale.qmodel.object.QObjectMapping<S,Q,R>
-
- com.evolveum.midpoint.repo.sqale.qmodel.object.QAssignmentHolderMapping<LookupTableType,QLookupTable,MLookupTable>
-
- com.evolveum.midpoint.repo.sqale.qmodel.lookuptable.QLookupTableMapping
-
- All Implemented Interfaces:
SqaleMappingMixin<LookupTableType,QLookupTable,MLookupTable>
public class QLookupTableMapping extends QAssignmentHolderMapping<LookupTableType,QLookupTable,MLookupTable>
Mapping betweenQLookupTable
andLookupTableType
.
-
-
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_ALIAS_NAME
-
Fields inherited from class com.evolveum.midpoint.repo.sqlbase.mapping.QueryModelMapping
logger
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected PathSet
fullObjectItemsToSkip()
static QLookupTableMapping
get()
static QLookupTableMapping
init(@NotNull SqaleRepoContext repositoryContext)
protected QLookupTable
newAliasInstance(String alias)
Method returning new instance ofEntityPath
- to be implemented by sub-mapping.MLookupTable
newRowObject()
void
storeRelatedEntities(@NotNull MLookupTable lookupTable, @NotNull LookupTableType schemaObject, @NotNull JdbcSession jdbcSession)
Stores other entities related to the main object row like containers, references, etc.LookupTableType
toSchemaObjectInternal(com.querydsl.core.Tuple rowTuple, QLookupTable entityPath, Collection<SelectorOptions<GetOperationOptions>> options, @NotNull JdbcSession session, boolean forceFull)
TODO: This should be merged with toSchemaObject and forceFull parameter should be deprecated.-
Methods inherited from class com.evolveum.midpoint.repo.sqale.qmodel.object.QAssignmentHolderMapping
getAssignmentHolderMapping, initAssignmentHolderMapping
-
Methods inherited from class com.evolveum.midpoint.repo.sqale.qmodel.object.QObjectMapping
getObjectMapping, initObjectMapping, selectExpressions, setFullObject, toRowObjectWithoutFullObject, toSchemaObject, toSchemaObjectCompleteSafe
-
Methods inherited from class com.evolveum.midpoint.repo.sqale.mapping.SqaleTableMapping
addExtensionMapping, binaryMapper, booleanMapper, createFullObject, createRowTransformer, enumMapper, insert, integerMapper, multiPolyStringMapper, multiStringMapper, multiUriMapper, multiValueMapper, needsInitialization, objectReference, objectReference, objectTypeToQName, parseSchemaObject, parseSchemaObject, polyStringMapper, processCacheableRelation, processCacheableUri, processCacheableUri, processCacheableUris, processExtensionColumns, processExtensions, repositoryContext, resolveIdToUri, resolveReferenceNames, resolveUriIdToQName, schemaTypeToObjectType, setPolyString, setReference, storeRefs, stringMapper, stringsToArray, timestampMapper, toSchemaObject, toSchemaObjectComplete, uriMapper, uuidMapper
-
Methods inherited from class com.evolveum.midpoint.repo.sqlbase.mapping.QueryTableMapping
addDetailFetchMapper, addExtensionColumn, defaultAlias, defaultAliasName, detailFetchMappers, getExtensionColumns, joinOn, longMapper, newAlias, prismContext, selectExpressionsWithCustomColumns, tableName, toString, updateGetOptions
-
Methods inherited from class com.evolveum.midpoint.repo.sqlbase.mapping.QueryModelMapping
addItemMapping, addRelationResolver, getItemMapper, getItemMappings, getRelationResolver, itemDefinition, itemMapper, queryType, relationResolver, schemaType
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.evolveum.midpoint.repo.sqale.mapping.SqaleMappingMixin
addAuditRefMapping, addContainerTableMapping, addExtensionMapping, addItemMapping, addNestedMapping, addRefMapping, addRefMapping, addRelationResolver, afterModify, queryType
-
-
-
-
Field Detail
-
DEFAULT_ALIAS_NAME
public static final String DEFAULT_ALIAS_NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
init
public static QLookupTableMapping init(@NotNull @NotNull SqaleRepoContext repositoryContext)
-
get
public static QLookupTableMapping get()
-
newAliasInstance
protected QLookupTable newAliasInstance(String alias)
Description copied from class:QueryTableMapping
Method 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:
newAliasInstance
in classQAssignmentHolderMapping<LookupTableType,QLookupTable,MLookupTable>
-
newRowObject
public MLookupTable newRowObject()
- Overrides:
newRowObject
in classQObjectMapping<LookupTableType,QLookupTable,MLookupTable>
-
storeRelatedEntities
public void storeRelatedEntities(@NotNull @NotNull MLookupTable lookupTable, @NotNull @NotNull LookupTableType schemaObject, @NotNull @NotNull JdbcSession jdbcSession) throws SchemaException
Description copied from class:QObjectMapping
Stores other entities related to the main object row like containers, references, etc. This is not part ofQObjectMapping.toRowObjectWithoutFullObject(S, com.evolveum.midpoint.repo.sqlbase.JdbcSession)
because it requires known OID which is not assured before calling that method. *Always call this super method first in overriding methods.*- Overrides:
storeRelatedEntities
in classQAssignmentHolderMapping<LookupTableType,QLookupTable,MLookupTable>
- Parameters:
lookupTable
- master row for the added object("aggregate root")schemaObject
- schema objects for which the details are storedjdbcSession
- JDBC session used to insert related rows- Throws:
SchemaException
-
fullObjectItemsToSkip
protected PathSet fullObjectItemsToSkip()
- Overrides:
fullObjectItemsToSkip
in classSqaleTableMapping<LookupTableType,QLookupTable,MLookupTable>
-
toSchemaObjectInternal
public LookupTableType toSchemaObjectInternal(com.querydsl.core.Tuple rowTuple, QLookupTable entityPath, Collection<SelectorOptions<GetOperationOptions>> options, @NotNull @NotNull JdbcSession session, boolean forceFull) throws SchemaException
Description copied from class:SqaleTableMapping
TODO: This should be merged with toSchemaObject and forceFull parameter should be deprecated. Proper usage of updateGetOptions() should replace it - see QShadowMapping where toSchemaObject is overridden and force reindex works as well. In the meantime: This is "internal" method in the sense it can be overridden to customize the default transformation behavior. It is public so one mapper can call it on another mapper, but otherwise should not be called from repo service or similar places - these should useSqaleTableMapping.toSchemaObjectComplete(com.querydsl.core.Tuple, Q, java.util.Collection<com.evolveum.midpoint.schema.SelectorOptions<com.evolveum.midpoint.schema.GetOperationOptions>>, com.evolveum.midpoint.repo.sqlbase.JdbcSession, boolean)
. *Should I override this orSqaleTableMapping.toSchemaObject(R)
that is called from this method?* Prefer overridingSqaleTableMapping.toSchemaObject(R)
as we want to get rid of this version and forceFull flag. *Do not call this in result list transformers* because the results would not have resolved reference names (if requested). Notice that the default implementation ofSqaleTableMapping.createRowTransformer(com.evolveum.midpoint.repo.sqlbase.SqlQueryContext<S, Q, R>, com.evolveum.midpoint.repo.sqlbase.JdbcSession)
in this class callsSqaleTableMapping.toSchemaObjectCompleteSafe(com.querydsl.core.Tuple, Q, java.util.Collection<com.evolveum.midpoint.schema.SelectorOptions<com.evolveum.midpoint.schema.GetOperationOptions>>, com.evolveum.midpoint.repo.sqlbase.JdbcSession, boolean)
which is the right thing to call in result list transformers.- Overrides:
toSchemaObjectInternal
in classSqaleTableMapping<LookupTableType,QLookupTable,MLookupTable>
forceFull
- true when reindex is forced on the modified object, otherwise false- Throws:
SchemaException
-
-