withJoin method
TableManagerState<$Database, $Table, $Dataclass, $FilterComposer, $OrderingComposer, $ComputedFieldComposer, $CreateCompanionCallback, $UpdateCompanionCallback, $DataclassWithReferences, $ActiveDataclass, $CreatePrefetchHooksCallback>
withJoin({
- required Table currentTable,
- required Table referencedTable,
- required GeneratedColumn<
Object> currentColumn, - required GeneratedColumn<
Object> referencedColumn,
This method creates a copy of this manager state with a join added to the query.
If the join already exists in the joinBuilders, but has useColumns: false
, we update the JoinBuilder.
Implementation
TableManagerState<
$Database,
$Table,
$Dataclass,
$FilterComposer,
$OrderingComposer,
$ComputedFieldComposer,
$CreateCompanionCallback,
$UpdateCompanionCallback,
$DataclassWithReferences,
$ActiveDataclass,
$CreatePrefetchHooksCallback>
withJoin(
{required Table currentTable,
required Table referencedTable,
required GeneratedColumn currentColumn,
required GeneratedColumn referencedColumn}) {
final joinBuilder = JoinBuilder(
currentTable: currentTable,
referencedTable: referencedTable,
currentColumn: currentColumn,
referencedColumn: referencedColumn,
useColumns: true);
// If there is already a join builder for this table, we will replace it
// to ensure that we have `useColumns` set to true
final newJoinBuilders = joinBuilders
.whereNot((element) =>
element.currentColumn == currentColumn &&
element.referencedColumn == referencedColumn)
.toSet()
..add(joinBuilder);
return TableManagerState(
db: db,
table: table,
createFilteringComposer: createFilteringComposer,
createOrderingComposer: createOrderingComposer,
createComputedFieldComposer: createComputedFieldComposer,
createCompanionCallback: _createCompanionCallback,
updateCompanionCallback: _updateCompanionCallback,
withReferenceMapper: _withReferenceMapper,
filter: filter,
joinBuilders: newJoinBuilders,
orderingBuilders: orderingBuilders,
distinct: distinct,
limit: limit,
offset: offset,
prefetchHooksCallback: _prefetchHooksCallback,
prefetchedData: _prefetchedData,
addedColumns: addedColumns,
);
}