8
Android Room Persistence Library:Upsert
Android的Room持久性库优雅地包含适用于对象或集合的@Insert和@Update批注。但是,我有一个用例(包含模型的推送通知),由于数据库中可能存在或可能不存在数据,因此需要UPSERT。 Sqlite本身没有upsert,因此在SO问题中描述了解决方法。给定那里的解决方案,如何将它们应用于Room? 更具体地说,如何在Room中实现不会破坏任何外键约束的插入或更新?在onConflict = REPLACE上使用insert将导致onDelete调用该行的任何外键。在我的情况下,onDelete导致级联,而重新插入行将导致其他表中具有外键的行被删除。这不是预期的行为。