Realm: хитрости при сохранении данных сервера
Originally published at О разработке для Android и гаджетах. Please leave any comments there.
Ситуация в следующем: приложение делает REST запрос на получение данных, сохраняет их в базе, каким-то образом модифицирует, затем снова их получает с сервера. Все довольно тривиально, казалось бы, если бы не одно «но» — где мои локальные изменения?
К сожалению, Realm не поддерживает обновление данных с пропуском конкретных полей, как это было сделано в реквесте на гитхабе проекта, например
But, what about a call to specify a list of the fields that one want to overwrite (or preserve)?
copyToRealmOrUpdateOverwritingFields("field1","field2")
copyToRealmOrUpdatePreservingFields("field1","field2")
copyToRealmOrUpdate(obj).preserve("field1","field2")
https://github.com/realm/realm-java/issues/2179
что было бы довольно удобно. Давайте рассмотрим на примерах. Представим, что у нас есть чат, в котором у сообщений есть флаг «прочитано». Наш REST интерфейс не возвращает об этом состоянии никаких данных и вся информация о том, было ли сообщение прочитано или нет, хранится только локально.