У меня есть дубликаты значений в моей базе данных событий. - PullRequest
0 голосов
/ 15 апреля 2020
@Dao
interface ChatsDao {

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun insert(item: ChatModelEntity)

    @Delete
    fun delete(item: ChatModelEntity)

    @Query("select * from ".plus(Constants.chatsTableName))
    fun getAllChats(): LiveData<List<ChatModelEntity>>
}
@Entity(tableName = Constants.chatsTableName, indices = [Index(value = ["groupId"], unique = true)])
data class ChatModelEntity(
    @SerializedName("created")
    var created: String = "",
    @SerializedName("groupId")
    @ColumnInfo(name = "groupId")
    var groupId: String = "",
    @SerializedName("groupType")
    var groupType: Int?,
    @SerializedName("joinedAt")
    var joinedAt: String = "",
    @SerializedName("name")
    var name: String = "",
    @SerializedName("unreadMessages")
    var unreadMessages: String? = "",
    @SerializedName("userGroupRole")
    var userGroupRole: Int?,
    @SerializedName("userId")
    var userId: String = ""
) {
    @PrimaryKey(autoGenerate = true)
    var id: Int = 0
}

Как вы можете видеть, я реализовал необходимые изменения, необходимые для того, чтобы моя переменная groupId стала первичным ключом для проверки на наличие дублирующихся значений, но все же я получаю все больше и больше один и тот же объект каждый раз, когда я помещаю их в свою базу данных.

Как я могу предотвратить это?

...