1. ホーム
  2. android

[解決済み] Android Room - 自動生成で新規挿入行のidを取得する

2022-04-14 12:28:41

質問

Room Persistence Libraryを使用してデータベースにデータを挿入する方法です。

エンティティ

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

データアクセスオブジェクト。

@Dao
public interface UserDao{
    @Insert(onConflict = IGNORE)
    void insertUser(User user);
    //...
}

別途selectクエリを書かずに、上記メソッド自体で挿入が完了したUserのidを返すことは可能でしょうか?

どうすればいいですか?

ドキュメントに基づく こちら (コードスニペットの下)

でアノテーションされたメソッドは @Insert アノテーションを返すことができます。

  • long 単一の挿入操作の場合
  • long[] または Long[] または List<Long> 複数の挿入操作の場合
  • void 挿入されたidを気にしないのであれば