Создание базы данных в Android. Конфликт автоматически созданных переменных в автоматически созданном java файле
Создал несколько Entity, для каждого создал Dao и всё разместил в Database. После запука проекта был автоматически сгенирировал java файл, где создались все таблицы.
public RoomOpenHelper.ValidationResult onValidateSchema(
@NonNull final SupportSQLiteDatabase db) {
final HashMap<String, TableInfo.Column> _columns = new HashMap<String, TableInfo.Column>(4);
_columns.put("КодГруппы", new TableInfo.Column("КодГруппы", "INTEGER", false, 1, null, TableInfo.CREATED_FROM_ENTITY));
_columns.put("НазваниеГруппы", new TableInfo.Column("НазваниеГруппы", "TEXT", false, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columns.put("КраткоеНазваниеГруппы", new TableInfo.Column("КраткоеНазваниеГруппы", "TEXT", false, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columns.put("Студенты", new TableInfo.Column("Студенты", "TEXT", false, 0, null, TableInfo.CREATED_FROM_ENTITY));
final HashSet<TableInfo.ForeignKey> _foreignKeys = new HashSet<TableInfo.ForeignKey>(0);
final HashSet<TableInfo.Index> _indices = new HashSet<TableInfo.Index>(0);
final TableInfo _info = new TableInfo("Группа", _columns, _foreignKeys, _indices);
final TableInfo _existing = TableInfo.read(db, "Группа");
if (!_info.equals(_existing)) {
return new RoomOpenHelper.ValidationResult(false, "Группа(com.example.timetablev1.entity.GroupEntity).\n"
+ " Expected:\n" + _info + "\n"
+ " Found:\n" + _existing);
}
final HashMap<String, TableInfo.Column> _columns = new HashMap<String, TableInfo.Column>(8);
_columns.put("КодЗанятия", new TableInfo.Column("КодЗанятия", "INTEGER", false, 1, null, TableInfo.CREATED_FROM_ENTITY));
_columns.put("КодПредмета", new TableInfo.Column("КодПредмета", "INTEGER", false, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columns.put("КодПреподавателя", new TableInfo.Column("КодПреподавателя", "INTEGER", false, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columns.put("ДеньНедели", new TableInfo.Column("ДеньНедели", "INTEGER", false, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columns.put("ФормаЗанятия", new TableInfo.Column("ФормаЗанятия", "INTEGER", false, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columns.put("Чётность", new TableInfo.Column("Чётность", "INTEGER", false, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columns.put("Корпус", new TableInfo.Column("Корпус", "INTEGER", false, 0, null, TableInfo.CREATED_FROM_ENTITY));
_columns.put("Кабинет", new TableInfo.Column("Кабинет", "TEXT", false, 0, null, TableInfo.CREATED_FROM_ENTITY));
final HashSet<TableInfo.ForeignKey> _foreignKeys = new HashSet<TableInfo.ForeignKey>(0);
final HashSet<TableInfo.Index> _indices = new HashSet<TableInfo.Index>(0);
final TableInfo _info = new TableInfo("Занятие", _columns, _foreignKeys, _indices);
final TableInfo _existing = TableInfo.read(db, "Занятие");
if (!_info.equals(_existing)) {
return new RoomOpenHelper.ValidationResult(false, "Занятие(com.example.timetablev1.entity.LessonEntity).\n"
+ " Expected:\n" + _info + "\n"
+ " Found:\n" + _existing);
}
Дальше есть ещё несколько аналогичных этим двум таблицам и _columns, _foreignKeys, _indices, _existing. Это вызывает конфликт переменных. Как это можно исправить?
Код AppDatabase:
@Database(
entities = [
GroupEntity::class,
LessonEntity::class,
StudentEntity::class,
SubjectEntity::class,
TeacherEntity::class
],
version = 1)
@TypeConverters(Converters::class)
abstract class AppDatabase : RoomDatabase() {
abstract fun groupDao(): GroupDao
abstract fun lessonDao(): LessonDao
abstract fun studentDao(): StudentDao
abstract fun subjectDao(): SubjectDao
abstract fun teacherDao(): TeacherDao
companion object {
@Volatile
private var INSTANCE: AppDatabase? = null
fun getDatabase(context: Context): AppDatabase {
return INSTANCE ?: synchronized(this) {
val instance = Room.databaseBuilder(
context.applicationContext,
AppDatabase::class.java,
"timetable_database"
).build()
INSTANCE = instance
instance
}
}
}
}