【发布时间】:2017-07-16 16:29:28
【问题描述】:
我正在尝试使用 Room 数据库和 LiveData。
我有 ViewModel,其中包含他们从 dao 获得的 LiveData。
如果我更新Transaction,则可以观察到LiveData<List<Transaction>>,但根本没有观察到LiveData<Transaction>。这怎么可能?我做错了什么?
public abstract class Dao {
@Query("SELECT * FROM transact WHERE deleted = :value")
public abstract LiveData<List<Transaction>> allTransactions(boolean value);
@Query("SELECT * FROM transact WHERE guid = :guid AND deleted = :value ")
public abstract LiveData<Transaction> getTransaction(String guid, boolean value);
@Update(onConflict = OnConflictStrategy.REPLACE)
protected abstract void updateTransaction(Transaction transaction);
}
有类似的问题,当使用非 @Singleton 注释类时提到 Dagger 并发症,不幸的是,这不是我的问题,即使我使用 Dagger。
【问题讨论】:
-
“这怎么可能?” -- 也许 Room 并没有将单个实体更改作为其失效跟踪的一部分。
-
好吧,我会要求重命名为 DeadData 然后...
标签: java android android-room android-livedata