DAO错误:-参数的类型必须是用@Entity注释的类或其集合/数组

Tus*_*rma 6 android kotlin data-access-object android-room android-architecture-components

我是 Android 开发新手,我正在尝试通过遵循 Android 架构组件来制作一个笔记应用程序,但在运行时,我在 DAO 中遇到错误,如果有人可以提供帮助,我将不胜感激。这是我收到的代码和错误。

我收到的错误

道:-

'''

@Dao
interface NoteDao {
    @Insert(onConflict = OnConflictStrategy.IGNORE)
    suspend fun insert(note :Note)

    @Delete
    suspend fun delete(note : Note)

    @Query("SELECT * FROM Notes_table order by id")
    fun getALL(): LiveData<List<Note>>

    @Query("SELECT * From Notes_table where id= :pos")
    fun getSpecific(pos :Int):Note

}
Run Code Online (Sandbox Code Playgroud)

'''

实体:-

'''

@Entity(tableName = "Notes_table")
data class Note(@ColumnInfo(name="noteText") val text:String) {
    @PrimaryKey(autoGenerate = true) var id:Int =0

}
Run Code Online (Sandbox Code Playgroud)

''' 数据库:-

'''

@Database(entities = [Note::class],version = 1,exportSchema = false)
abstract class NoteDatabase : RoomDatabase() {

    abstract fun getNoteDao():NoteDao

    companion object{
        @Volatile
        private var Instance: NoteDatabase?=null

        fun getDatabase(context :Context):NoteDatabase{

            return Instance ?: synchronized(this){
                val instance=Room.databaseBuilder(context.applicationContext,
                NoteDatabase::class.java,"note_database").build()
                Instance=instance
                instance
            }
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

DAO 的进口:-

import androidx.lifecycle.LiveData
import androidx.room.
Run Code Online (Sandbox Code Playgroud)

实体进口:-

import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
Run Code Online (Sandbox Code Playgroud)

数据库导入:-

import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
Run Code Online (Sandbox Code Playgroud)

如果需要,我可以提供其余的代码。

Tus*_*rma 5

在评论部分的帮助和阅读文档的帮助下,我发现我的 DAO 出了问题,最终这与我添加到依赖项中的ROOM版本有关,我刚刚更新了这些版本,现在它工作正常。