Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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」フィールドは作らない方が良いと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away