Как поместить целочисленные литералы в запрос Room? - PullRequest
0 голосов
/ 16 октября 2018

Можно ли поместить целочисленные литералы в запрос Room?Следующий запрос приводит к ошибке сборки:

@Query("UPDATE topics SET unreadCount=0 WHERE id=:chatId")
fun resetUnreadCount(chatId: Long)

Я попробовал несколько вариантов (включая RawQuery ) и пришел к варианту передачи аргумента Int со значением по умолчанию:

@Query("UPDATE chats SET unreadCount=:ZERO WHERE id=:chatId")
fun resetUnreadCount(chatId: Long, ZERO: Int = 0) // hacky way to pass int literal into the query

Есть ли нормальный способ сделать это?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Первый запрос имеет другой класс Entity 'themes'

@Query("UPDATE topics SET unreadCount=0 WHERE id=:chatId")

Это тоже должны быть чаты?как приведенный ниже запрос работает.целое число в запросе в порядке.

@Query("UPDATE chats SET unreadCount=:ZERO WHERE id=:chatId")
0 голосов
/ 16 октября 2018

Пожалуйста, проверьте эту документацию.

https://www.sqlite.org/datatype3.html. Посмотрите в разделе 3.4, в нем говорится о сходстве кума Бехвиур

unreadCount='0'

Это также должно работать

@Query("UPDATE topics SET unreadCount='0' WHERE id=:chatId")
...