Как получить последний идентификатор вставки из транзакции 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);});

Если идентификатор установлен вручную, ваш запрос действителен только в том случае, если записи вставляются вручную одним пользователем приложения. Мы должны вместе выработать решение, если вы синхронизируете данные из онлайн-хранилища данных.

Это работает?

Другие вопросы по тегам