我正在将现有应用程序从 WebSql 重写为 JayData。该应用程序是建立在 WebSql 之上的,它被贬低了,需要被替换(至少迟早)。我将所有 WebSql 重新分解为它自己的适配器,现在正在尝试使用 JayData 编写一个并行适配器。
我想知道的是如何优雅地处理 sql join
。这是一个例子
read: function (display) {
var sql = "",
args = [];
sql += "SELECT table1.table1Id, table1.name, table1Local.UpdateTime ";
sql += "FROM table1";
sql += "LEFT OUTER JOIN table1Local ON table1.table1Id = table1Local.table1Id ";
sql += "WHERE table1Local.Display = ? ";
args[0] = (display === true ? "1" : "0");
return database.read(sql, args);
},
我在上下文中有两个 jayData 实体“ table1
”和“ table1Local
”。这是我的粗略尝试,但它没有加入数据。
read: function (display) {
display = display === true ? "1" : "0";
var dfd = $.Deferred();
var context = new Table1Context({
name: config.database.type,
databaseName: config.database.name
});
context.onReady(function(){
return context.Table1
.filter(function( t){
// We need to use the Display property in the local "table"
return t.display == this.display;
}, {display: display})
.toArray()
.then(function (ts) {
var data= [];
ts.forEach( function(t) {
data.push(t);
});
dfd.resolve(data);
return views;
});
});
return dfd.promise();
}
我对如何使它正常工作有点迷茫。