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() 可以采用映射的构造函数,根据键检索对象,然后使用构造函数创建完整的域对象。