Skip to content

Column Name Mapping

When your application uses custom classes to represent data objects stored in the database, Backendless maps the column names in the database to the fields/properties declared in a custom class. For example, consider the following class:

import 'package:backendless_sdk/backendless_sdk.dart';

@reflector
class Person {
  String name;
  int age;
  String objectId;
}
When an instance of the class is saved in the Backendless database, it creates a table with the following schema:
person-table

As you can see the names of the columns match the names of the properties in the class. However, sometimes that mapping cannot be observed and a property in the class must have a different name or capitalization than the name of the column. In order to override the default mapping, Backendless supports an annotation which allows to map a property to a column. Consider the following example:

import 'package:backendless_sdk/backendless_sdk.dart';

@reflector
class Person {
  String objectId;
  @MapToProperty("name")
  String Name;
  @MapToProperty("age")
  int Age;
}
}

The example demonstrates the mapping of the "Name" and "Age" properties in the client application to the "name" and "age" columns in the database . The mapping is bidirectional, it means it works for both saving objects in and retrieving from the database.

Important

Creating mappings for system level columns such as objectId, created, updated and ownerId is not supported.