A TableMapping describes the mapping of a
domain object in the application to a table stored in the
database. A default table mapping is one
which maps each column in a table to a field of the same name.
TableMapping = {
String table : "" ,
String database : "" ,
boolean mapAllColumns : true,
Array fields : null
};
The table and data members
are the names of the table and database, respectively.
mapAllColumns, if true, creates a default
FieldMapping
for all columns not listed in fields, such
that that all columns not explicitly mapped are given a default
mapping to a field of the same name. fields
holds an array of FieldMapping objects;this
can also be a single FieldMapping.
A FieldMapping describes a single field in a
domain object. There is no public constructor for this object;
you can create a FieldMapping using
TableMapping.mapField(), or you can use
FieldMapping literals can be used directly in
the TableMapping constructor.
FieldMapping = {
String fieldName : "" ,
String columnName : "" ,
Boolean persistent : true,
Converter converter : null
};
fieldName and columnName
are the names of the field and the column where this field are
stored, respectively, in the domain object. If
persistent is true (the default), the field
is stored in the database. converter
specifies a
Converter
class, if any, to use with this field (defaults to null). };
The TableMapping constructor can take either
the name of a table (possibly qualified with the database name)
or a TableMapping literal.
TableMapping mapField(String fieldName, [String columnName], [Converter converter], [Boolean persistent])
Create a field mapping for a named field of a mapped object. The
only mandatory parmeter is fieldName,
which provides the name a field in a JavaScript application
object. The remaining parameters are optional, and may appear in
any order. The cyrrent TableMapping object is
returned.
columnName specifies the name of the
database column that maps to this object field. If omitted,
columnName defaults to the same value
as fieldName. A
converter can be used to supply a
Converter
class that performs custom conversion between JavaScript and
database data types. The default is null.
persistent specifies whether the
field is persisted to the database, and defaults to true.
If persistent is false, then the
columnName and
converter parameters may not be
used.
TableMapping applyToClass(Function constuctor)
Attach a TableMapping to a
constructor for mapped objects. After
this is done, any object created from the constructor will
qualify as a mapped instance, which several forms of the
relevant
Session
and
Batch
methods can be used.
For example, an application can construct an instance that is
only partly complete, then use
Session.load()
to populate it with all mapped fields from the database. After
the application modifies the instance,
Session.save()
saves it back. Similarly,
Session.find()
can take the mapped constructor, retrieve an object based on
keys, and then use the constructor to create a fully-fledged
domain object.