【问题标题】:How do I pass my Data object to DAO and access all data object properties in Query?如何将我的数据对象传递给 DAO 并访问 Query 中的所有数据对象属性?
【发布时间】:2020-08-01 10:36:05
【问题描述】:

我有一个简单的数据对象,我想插入到房间数据库中,但由于我在主键上使用自动增量,所以我按如下方式进行操作

@Dao
interface T1Dao {

   @Query("INSERT INTO tbl_t1(data1, data2) VALUES ( :T1.data1, :T1.data2) ")
   fun insert(note: T1): Long

}

我在 T1 中有很多属性,所以如果可能的话,我不想单独传递它们。 在上面的例子中,我只展示了两个属性。

【问题讨论】:

    标签: android android-room android-room-relation


    【解决方案1】:

    但是你可以只使用@Insert 而不是设置你的主键字段,不是吗?

    @Insert
    fun insert(note: T1): Long
    

    假设你有 T1 类:

    @Entity
    data class T1(
       @PrimaryKey(autoGenerate = true)
       val id: Int = 0, // This lets you not to set id before inserting 
       val data1: String,
       val data2: String
    )
    

    然后你可以插入:

    dao.insert(T1(data1 = "data1", data2 = "data2")) // just don't set id
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-01
      • 2014-11-16
      • 1970-01-01
      • 1970-01-01
      • 2013-10-09
      • 2019-12-13
      • 1970-01-01
      相关资源
      最近更新 更多