Очевидно, я предполагал, что возвращенный элемент будет синхронизирован с хранилищем данных. Это не выглядит так и должно быть обновлено вручную, используя:
store.setValue(item, field, value);
Я также надеялся на команду, эквивалентную слиянию JPA. Если вы перезаписали предыдущий объект с помощью:
store.newItem( updatedVersionOfItem );
и элемент имеет тот же уникальный идентификатор, он перезапишет старый элемент, похожий на слияние.
Кто-нибудь знает, существует ли какая-то фабрика, которая будет создавать методы получения и установки для элемента, который будет вызывать store.setValue () для каждого поля?
Я предполагаю, что это будет что-то вроде следующего:
var wrappedItem = itemWrapperFactory.createWrapper( item, store );
...
//Some where in createWrapper(...), this is just the concept
for (var itemField in itemFieldList)
this.__defineGetter__( itemField[index] , function(val){
store.setValue(item, itemField[index], val);
});
Я собираюсь написать свой собственный, как аккуратный образец архитектуры.