TableMapping
描述应用程序中域对象与存储在数据库中的表之间的映射。 默认 表映射是将表中的每一列映射到同名字段的映射。
TableMapping = {
String table : "" ,
String database : "" ,
boolean mapAllColumns : true,
Array fields : null
};
table
和 data
成员分别是表和数据库的名称。 如果 mapAllColumns
为 true,则会为 fields
中未列出的所有列创建一个默认的 FieldMapping
,以便所有未显式映射的列都被赋予到同名字段的默认映射。 fields
保存一个 FieldMapping
对象数组;这也可以是单个 FieldMapping
。
FieldMapping
描述域对象中的单个字段。 此对象没有公共构造函数;您可以使用 TableMapping.mapField()
创建 FieldMapping,或者您可以使用 FieldMapping
文字量直接在 TableMapping
构造函数中使用。
FieldMapping = {
String fieldName : "" ,
String columnName : "" ,
Boolean persistent : true,
Converter converter : null
};
fieldName
和 columnName
分别是域对象中存储此字段的字段和列的名称。 如果 persistent
为 true(默认值),则该字段存储在数据库中。 converter
指定与此字段一起使用的 Converter
类(如果有)(默认为 null)。};
TableMapping
构造函数可以采用表名(可能使用数据库名称限定)或 TableMapping
文字量。
TableMapping mapField(String fieldName, [String columnName], [Converter converter], [Boolean persistent])
为映射对象的命名字段创建字段映射。 唯一的必需参数是 fieldName
,它提供 JavaScript 应用程序对象中字段的名称。 其余参数是可选的,可以按任意顺序出现。 返回当前的 TableMapping
对象。
columnName
指定映射到此对象字段的数据库列的名称。 如果省略,columnName
默认为与 fieldName
相同的值。 可以使用 converter
来提供 Converter
类,该类在 JavaScript 和数据库数据类型之间执行自定义转换。 默认为 null。 persistent
指定该字段是否持久化到数据库,默认为 true。
如果 persistent
为 false,则 columnName
和 converter
参数可能无法使用。
TableMapping applyToClass(Function constuctor)
将 TableMapping
附加到映射对象的 constructor
。 完成此操作后,从构造函数创建的任何对象都将视为映射实例,可以使用相关 Session
和 Batch
方法的几种形式。
例如,应用程序可以构造一个只完成部分的实例,然后使用 Session.load()
从数据库中填充所有映射字段。 应用程序修改实例后,Session.save()
会将其保存回去。 同样,Session.find()
可以采用映射的构造函数,根据键检索对象,然后使用构造函数创建完整的域对象。