在Android的房间数据库中插入复合密钥的重复值后,应用程序崩溃



当我第一次处理数据时,我生成了一个由两列组成的复合键。但当我插入相同的数据(重复(时,应用程序崩溃了。如何处理应用程序在插入重复数据后不会崩溃?只需给我一条祝酒词"数据已经可用">

@Entity(tableName = "ChildRegistration",
indices = {@Index(value = {"childName","mobileNumber"}, unique = true)})
public class ChildRegistration {}`

问题是unique设置为true,因此您必须有confect解决方案。我下面给出的例子直接来自我给的链接的官方文档

例如,在您的dao 中

@Insert(onConflict = OnConflictStrategy.IGNORE) suspend fun insert(word: Word)

https://developer.android.com/reference/androidx/room/Update#onConflict((

https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin/#4

或者更新已经存在的,例如

@Update public void updateSong(Song)

https://developer.android.com/reference/androidx/room/Update

使用onConflict = OnCnflictStrategy.IGNORE并使insert方法返回long。如果insert返回-1,则表示已存在。否则,它将返回插入的行号。

最新更新