房间查询不起作用

时间:2018-07-29 11:41:18

标签: android android-room android-architecture-components android-livedata android-architecture

我正在尝试在项目中将 Room LiveData 结合使用。在我的应用中,有 authors 表。数据插入良好,但是当我尝试从表中读取内容时,它没有给我记录。我还看到了带有SQLite Opener软件的数据库。它显示了我所有的数据。

下面是我的作者实体。

@Entity(tableName = "authors")
    data class AuthorModel(
    @PrimaryKey(autoGenerate = true)
    @ColumnInfo(name = "id") val id: Long = 0,
    @ColumnInfo(name = "name") var name: String
)

这是我的Author Dao界面。

@Dao
interface AuthorDao {

    @Query(value = "SELECT * FROM authors")
    fun allAuthors(): LiveData<List<AuthorModel>>

    @Query(value = "SELECT * FROM authors WHERE id = :authorId")
    fun authorWithId(authorId: Long): LiveData<AuthorModel?>

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun insert(author: AuthorModel): Long

}

最后,这是我的RoomDatabase类。

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

abstract fun authorDao(): AuthorDao

}

谢谢您的时间。

1 个答案:

答案 0 :(得分:0)

您必须观察LiveData。初次上线时,livedata.value将为null。