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,或者可以直接在 TableMapping
建構子中使用 FieldMapping
常值。
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()
可以使用已對應的建構子,根據索引鍵擷取物件,然後使用建構子建立完整的網域物件。