findAndUpdate<T extends DbBaseModel> method

  1. @override
Future<DbResult<T>> findAndUpdate<T extends DbBaseModel>(
  1. String table,
  2. DbFilter filter,
  3. DbUpdate update, {
  4. DbFindUpdateOptions? findUpdateOptions,
  5. required T converter(
    1. Map<String, dynamic> map
    ),
})
override

查找并更新单条记录

Implementation

@override
Future<DbResult<T>> findAndUpdate<T extends DbBaseModel>(String table, DbFilter filter, DbUpdate update, {DbFindUpdateOptions? findUpdateOptions, required T Function(Map<String, dynamic> map) converter}) async {
  if (findUpdateOptions?.$upsert == true && findUpdateOptions?.$returnNew != true) {
    logWarn(['findAndUpdate =>', table, 'DbFindUpdateOptions.\$upsert is true but DbFindUpdateOptions.\$returnNew is not true, may cause return null result.']);
  }
  try {
    final result = await _handle.findAndUpdate(table, filter, update, findUpdateOptions: findUpdateOptions, converter: converter);
    (result.success ? logDebug : logWarn)(['findAndUpdate =>', table, filter, update, findUpdateOptions, result]);
    return result;
  } catch (error, stack) {
    logError(['findAndUpdate =>', table, filter, update, findUpdateOptions, error, '\n', stack]);
    return DbResult(success: false, rescode: -1, message: error.toString());
  }
}