У меня интересная ошибка. Я использую комнату ORM в моем приложении. Индексы использовались для создания уникальных ограничений, так как, кажется, нет другого способа создать уникальные ограничения в комнате.
@Entity(
indices = [Index(value = ["name", "url"], unique = true)])
data class Playlist(
@PrimaryKey
var name:String,
var url:String
)
Интересно то, что раньше он работал и перестал работать после того, как я изменил класс AppDatabase. Теперь это выглядит так:
@Database(entities = [Playlist::class, PlaylistStream::class], version = 8)
abstract class AppDatabase : RoomDatabase() {
abstract fun playListDao(): PlaylistDAO
abstract fun playlistStreamDao(): PlaylistStreamDAO
companion object {
private var INSTANCE: AppDatabase? = null
fun getAppDataBase(context: Context): AppDatabase? {
if (INSTANCE == null){
synchronized(AppDatabase::class){
INSTANCE = Room.databaseBuilder(context.applicationContext, AppDatabase::class.java, "myDB").fallbackToDestructiveMigration().build()
}
}
return INSTANCE
}
fun destroyDataBase(){
INSTANCE = null
}
}
}
, но до этого я просто делал что-то подобное в своей деятельности:
val db = Room.databaseBuilder(
applicationContext,
AppDatabase::class.java, "database-name"
).build()
У вас есть идеи, почему это происходит и как я могу установить ограничения