Android Room, как автоматически сгенерировать счетчик последовательности - PullRequest
0 голосов
/ 12 июня 2019

В моем текущем приложении Android используется база данных Room / SQLite

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

Мне бы хотелось, чтобы эта последовательность былагенерируется автоматически, однако кажется, что функция автоматического генерирования доступна только для PrimaryKey (s)

Можно ли каким-либо образом использовать столбец Int в автоприращении Room, если он не является первичным ключом?

1 Ответ

1 голос
/ 12 июня 2019

В большинстве случаев автоматически генерируется столбец, содержащий уникальное значение (которое я считаю целым числом).Это известно как rowid.Этот столбец rowid автоматически увеличивается каждый раз при вставке строки (дополнительную информацию о rowid здесь ).

rowid обычно не включается в SELECT *, поэтому вынужно будет вручную включить его в свой DAO @Query.См. Ниже:

@Query("SELECT *, rowid FROM my_table")
    fun get(): MyEntity

или в java:

@Query("SELECT *, rowid FROM my_table")
    public MyEntity get();

Обратите внимание, что если ваш первичный ключ является целым числом, он фактически будет псевдонимом столбца rowid.Снова, смотрите ссылку, которую я предоставил выше для получения дополнительной информации.

Надеюсь, это поможет!

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