@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
стала первичным ключом для проверки на наличие дублирующихся значений, но все же я получаю все больше и больше один и тот же объект каждый раз, когда я помещаю их в свою базу данных.
Как я могу предотвратить это?