Как получить id новой записи после добавления в таблицу?

Рейтинг: 0Ответов: 1Опубликовано: 20.04.2023

Есть таблица в базе данных Room, primary key у неё автоматически генерируется (выставлен флаг autoGenerate).

Подскажите, как я могу получить id новой записи после добавления?

Ответы

▲ 0Принят

Это можно сделать, если в методе класса Dao указать тип Long в качестве возвращаемого значения. Об этом сказано в документации.

Предположим, у вас есть сущность User:

@Entity
public class User {
    @PrimaryKey(autoGenerate = true)
    public int id;
    public String name;
}

И insert-метод Dao возвращает тип Long:

@Dao
interface MyDao {

    @Insert
    Long insertUser(User user);

}

Тогда при вызове этого метода будет возвращаться rowId, который будет соответствовать новому id пользователя:

Long id = dao.insertUser(user);