Тип параметра должен быть классом, аннотированным @Entity - PullRequest
0 голосов
/ 04 июня 2019

Я работаю с базами данных комнат персистентности в Android, но я получаю эту ошибку ошибка: тип параметра должен быть классом, аннотированным @Entity, или его коллекцией / массивом. test.android.orca.com.ws2db.Models.User ... user); Пожалуйста, помогите мне

Это мой DAO:

@Dao
abstract interface UserDao
{
@get:Query("SELECT * FROM user")
val getall: List<User>

@Query("SELECT * FROM user where name LIKE  :name AND login LIKE :login")
fun findByName(name: String, login: String): User

@Query("SELECT COUNT(*) from user")
fun countUsers(): Int

@Insert
fun insertAll(users: List<User>)

@Delete
fun delete(vararg user: User)
}

Это моя сущность

@Entity(tableName = "user")
class UserTable {

@PrimaryKey(autoGenerate = true)
var uid: Int = 0

@ColumnInfo(name = "name")
var name: String? = null

@ColumnInfo(name = "login")
var login: String? = null

@ColumnInfo(name = "id")
var id: Int = 0

@ColumnInfo(name="url")
var url: String? = null

@ColumnInfo(name="company")
var company:String?=null

}

База данных

@Database(entities = [UserTable::class], version = 1)
abstract class AppDatabase : RoomDatabase() {

abstract fun userDao(): UserDao

companion object {

    private var INSTANCE: AppDatabase? = null

    fun getAppDatabase(context: Context): AppDatabase? {
        if (INSTANCE == null) {
            INSTANCE = Room.databaseBuilder(context.applicationContext, 
             AppDatabase::class.java, "user-database")
                .allowMainThreadQueries()
                .build()
        }
        return INSTANCE
    }

    fun destroyInstance() {
        INSTANCE = null
    }
}}

Это ошибка: https://i.stack.imgur.com/FnECR.jpg

1 Ответ

1 голос
/ 04 июня 2019

Вы смешиваете user и UserTable.User действительно для ссылки на вашу таблицу, но ваша сущность UserTable

@Dao
abstract interface UserDao
{
@get:Query("SELECT * FROM user")
val getall: List<UserTable>

@Query("SELECT * FROM user where name LIKE  :name AND login LIKE :login")
fun findByName(name: String, login: String): UserTable

@Query("SELECT COUNT(*) from user")
fun countUsers(): Int

@Insert
fun insertAll(users: List<UserTable>)

@Delete
fun delete(vararg user: UserTable)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...