Увеличение значения в базе данных - PullRequest
0 голосов
/ 03 июня 2018

Я использую комнату Android для хранения своих записей.Каждая запись содержит два основных поля: дату, представленную в виде строки, и соответствующее число телефонных разблокировок на этот день в виде целого числа.Мне было интересно, как лучше увеличить этот номер в базе данных каждый раз, когда пользователь разблокирует телефон.Есть ли лучший способ, чем запросить текущее количество разблокировок в базе данных, увеличить его на 1 и обновить поле?Есть ли какой-нибудь умный способ просто увеличить значение без предварительного запроса, чтобы узнать точное значение?

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Попробуйте выполнить простой запрос на обновление:

@Query("Update TableName Set FieldToIncrement = FieldToIncrement + 1 Where ID = :id")
public abstract void incrementValue(long id);
0 голосов
/ 03 июня 2018

Просто аннотируйте поле, которое вы хотите увеличить эту аннотацию

@PrimaryKey(autoGenerate = true) private final int id;

А когда пользователь разблокирует телефон, просто создайте новый экземпляр вашего @Entity.Для id в конструкторе вашего @Entity прохода 0 Room автоматически генерирует следующее значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...