setRelationship<E extends Object> method
FutureOr<bool>
setRelationship<E extends Object>(
- O o,
- String field,
- List<
E> values, { - TypeInfo? fieldType,
- Transaction? transaction,
override
Implementation
@override
FutureOr<bool> setRelationship<E extends Object>(
O o,
String field,
List<E> values, {
TypeInfo? fieldType,
Transaction? transaction,
}) {
fieldType ??= entityHandler.getFieldType(o, field, resolveFiledName: true)!;
var op = TransactionOperationStoreRelationship(
name,
operationExecutor,
o,
values,
transaction: transaction,
);
var valuesType = fieldType.arguments0!.type;
String valuesTableName = _resolveTableName(valuesType);
var valuesEntityHandler = _resolveEntityHandler(valuesType);
var oId = entityHandler.getID(o);
var othersIds =
values
.map(
(e) =>
valuesEntityHandler.isEntityInstance(e)
? valuesEntityHandler.getID(e)
: e,
)
.toList();
try {
return repositoryAdapter.doInsertRelationship(
op,
field,
oId,
valuesTableName,
othersIds,
);
} catch (e, s) {
var message =
'setRelationship[$valuesTableName]> '
'o: $o ; '
'field: $field ; '
'fieldType: $fieldType ; '
'values: $values ; '
'op: $op';
_log.severe(message, e, s);
rethrow;
}
}