当我第一次处理数据时,我生成了一个由两列组成的复合键。但当我插入相同的数据(重复(时,应用程序崩溃了。如何处理应用程序在插入重复数据后不会崩溃?只需给我一条祝酒词"数据已经可用">
@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,则表示已存在。否则,它将返回插入的行号。