1

我有简单的数据对象,我想插入到房间数据库中,但是当我在主键上使用自动增量时,我这样做如下

@Dao
interface T1Dao {

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

}

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

4

1 回答 1

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
于 2020-08-01T14:23:01.463 回答