Map*_*erz 5 android sql-update android-room
我遇到了一个问题,我不确定如何解决它.我正在处理的项目目前有一个模型,该模型部分包括后端存储的数据和来自本地数据库的数据.所以我想要存档的是这样的:
文章:[信息束]和[布尔订阅]
订阅字段是设备绑定的,不应反映后端的任何数据.我的问题是,是否可以在Room中实现某种处理以下情况的createIfNotExit()方法:
我的想法是将模型拆分为一个单独的订阅模型,其中包含对文章的引用.这样我就可以通过@Update(OnConfict=Update)等方式实现它...
有没有办法@Query在DAO中实现一个执行我想要的简单方法?
很抱歉,如果这是一个非常基本的问题,但我找不到任何有关处理此案例的最佳做法的材料.
先感谢您!
例如,您的实体是:
@Entity(tableName = "articles")
public final class Article {
@PrimaryKey
public long serverId;
public String title;
public String url;
public boolean isSubscribed;
}
Run Code Online (Sandbox Code Playgroud)
您可以在 DAO 中编写此方法:
@Query("INSERT OR REPLACE INTO articles (serverId, title, url, isSubscribed) VALUES (:id, :title, :url,
COALESCE((SELECT isSubscribed FROM articles WHERE id = :id), 0));")
void insertOrUpdateArticle(long id, String title, String url);
Run Code Online (Sandbox Code Playgroud)
另一种选择 - 在存储库中写入此逻辑并使用两个简单的操作:选择和更新
| 归档时间: |
|
| 查看次数: |
2778 次 |
| 最近记录: |