LoginSignup
0
0

More than 5 years have passed since last update.

AndroidでORMLiteを使うなら、_idカラムは不要かも。

Posted at

AndroidでSQLiteを使うならば、テーブルに「_id」というカラムを付けた方が良いらしい、とここに書いてあるんですが、
http://monoist.atmarkit.co.jp/mn/articles/1209/21/news003.htmlRMLite

ORMLiteを使ってDBアクセスを行うならば、必要無いと思われます。むしろ邪魔です。

例えば、以下のようなコードを想定します。
これはエンティティの更新もしくは追加を行う処理です。

//エンティティを生成する。
HogeEntity hogeEntityInstance = new HogeEntity();

/*このあたりでHogeEntityのデータをいろいろ格納する。*/

//更新もしくは追加
ORMDatabaseHelper helper = new ORMDatabaseHelper(context);
Dao<HogeEntity, Long> dao = helper.getDao(HogeEntity.class);
dao.createOrUpdate(hogeEntityInstance);
helper.close();

本来は、同じIDを持つエンティティが格納された場合、updateが走るはずです。
しかし「_id」フィールドをPrimary keyとしたテーブルの場合、必要なデータとは別に_idの値を格納する必要があります。

仮に「_id」を(generatedId = true)にしちゃってた場合、事前に一旦検索して_idを特定してからでないとupdateが動作しない事になります。というか私がやってしまいました。

というわけでormliteを使っている限り、「_id」フィールドは作らない方が良いと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0