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)!;
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;
}
}