select method

  1. @override
FutureOr<List<O>> select(
  1. EntityMatcher matcher, {
  2. Object? parameters,
  3. List? positionalParameters,
  4. Map<String, Object?>? namedParameters,
  5. Transaction? transaction,
  6. int? limit,
  7. EntityResolutionRules? resolutionRules,
})
override

Implementation

@override
FutureOr<List<O>> select(EntityMatcher matcher,
    {Object? parameters,
    List? positionalParameters,
    Map<String, Object?>? namedParameters,
    Transaction? transaction,
    int? limit,
    EntityResolutionRules? resolutionRules}) {
  checkNotClosed();

  final resolutionRulesResolved =
      resolveEntityResolutionRules(resolutionRules);

  var canPropagate = hasReferencedEntities(resolutionRulesResolved);

  var op = TransactionOperationSelect(
      name, canPropagate, operationExecutor, matcher,
      transaction: transaction);

  try {
    return repositoryAdapter.doSelect(op, matcher,
        parameters: parameters,
        positionalParameters: positionalParameters,
        namedParameters: namedParameters,
        limit: limit, preFinish: (results) {
      return resolveEntities(op.transaction, results,
          resolutionRules: resolutionRulesResolved);
    });
  } catch (e, s) {
    var message = 'select> '
        'matcher: $matcher ; '
        'parameters: $parameters ; '
        'positionalParameters: $positionalParameters ; '
        'namedParameters: $namedParameters ; '
        'op: $op';
    _log.severe(message, e, s);
    rethrow;
  }
}