refresh method

Future<T?> refresh([
  1. dynamic id
])

Refresh the model from DB

Implementation

Future<T?> refresh([dynamic id]) async {
  final currentId = this.id ?? id;
  if (currentId == null) return null;

  if (DB.driver == DBDriver.mysql) {
    // For MySQL, use positional parameters
    final result = await DB.query(
      'SELECT * FROM ${table.name} WHERE $primaryKey = ? LIMIT 1',
      positionalParams: [currentId],
    );
    if (result.isEmpty) return null;
    return fromMap(_convertDatabaseTypes(result.first));
  } else {
    // For PostgreSQL, use named parameters
    final result = await DB.query(
      'SELECT * FROM ${table.name} WHERE $primaryKey = :id LIMIT 1',
      namedParams: {'id': currentId},
    );
    if (result.isEmpty) return null;
    return fromMap(_convertDatabaseTypes(result.first));
  }
}