Ответ
Класс, использующий Room, должен быть помечен аннотацией @Entity для таблиц базы данных или @Dao для интерфейсов доступа к данным. Также могут использоваться @Database для абстрактных классов, наследующих RoomDatabase.
Пример для сущности:
@Entity(tableName = "users")
data class User(
@PrimaryKey val id: Int,
@ColumnInfo(name = "user_name") val name: String
)
Пример для DAO:
@Dao
interface UserDao {
@Query("SELECT * FROM users")
fun getAll(): List<User>
}
Для работы Room требуется, чтобы классы были открытыми (не private/internal). Сущности должны иметь хотя бы одно поле с @PrimaryKey.