Как обновить столбцы объекта Room, только если он пуст?

Есть ли способ обновить столбцы объекта, только если столбцы нулевые? Вот моя функция обновления в моем интерфейсе DAO:

@Query("UPDATE media SET media_name = :mediaName, media_data = :mediaData WHERE id = :id")
fun update(id: Int, mediaName: String?, mediaData: String?)

... потому что на данный момент значение "null" обновляется для этих столбцов.

1 ответ

Ты можешь попробовать:

@Query("UPDATE media SET media_name = (CASE WHEN media_name IS NULL THEN :mediaName ELSE media_name END), media_data = (CASE WHEN media_data IS NULL THEN :mediaData ELSE media_data END) WHERE id = :id")
fun update(id: Int, mediaName: String?, mediaData: String?)