Как передать мой объект данных в DAO и получить доступ ко всем свойствам объекта данных в Query? - PullRequest
1 голос
/ 01 августа 2020

У меня есть простой объект данных, который я хочу вставить в базу данных комнаты, но поскольку я использую автоматическое приращение для моего первичного ключа, я делаю это, как показано ниже

@Dao
interface T1Dao {

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

}

У меня много свойств в T1, поэтому я не хочу передавать их отдельно, если это возможно. В приведенном выше примере я просто показываю два свойства.

1 Ответ

1 голос
/ 01 августа 2020

Но вы можете просто использовать @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
...