Как получить последний идентификатор вставки из транзакции JayData?
Используя JayData для вставки нового объекта (записи) в базу данных Sqlite, как запросить последний идентификатор вставки? Я могу сделать это так, но это выглядит не элегантно:
DB.Members.orderByDescending('member.Id').take(1).toArray(function(member){
alert(member.Name);
});
1 ответ
Решение
Если вы определили класс Member с автоинкрементным идентификатором, вам не нужно писать дополнительный запрос, потому что свойство Id заполняется автоматически после saveChanges ().
Чтобы определить автоматически увеличенный идентификатор для вашего класса, проверьте, написали ли вы это:
$data.Entity.extend("Member", {
Id: { type: "int", key: true, computed: true },
...
});
var member = new Member();
member.Name = "a";
DB.Members.add(member);
DB.Members.saveChanges(function(){alert(member.Id);});
Если идентификатор установлен вручную, ваш запрос действителен только в том случае, если записи вставляются вручную одним пользователем приложения. Мы должны вместе выработать решение, если вы синхронизируете данные из онлайн-хранилища данных.
Это работает?