5

私はこのオブジェクトを持っています:

public class Set {
    @DatabaseField(columnName = "setID", generatedId = true)
    private int setID;
    @DatabaseField(columnName = "setName")
    private String setName;
}

このようなオブジェクトを作成すると:

Set newSet = new Set("name");
setDao.create(newSet);

そして、私がこれを作ると:

int id = newSet.getID();

セットIDを取得するか、データベースからオブジェクト全体を取得する必要があります

setDao.queryForEq("setName", "name");
4

1 に答える 1

12

そのため、ORMLite のドキュメントはかなり広範です。ドキュメントで generated-id を調べると、次のステートメントが表示されます。

フィールドが自動生成された ID フィールドであるかどうかのブール値。デフォルトは false です。クラス内でこれを設定できるフィールドは 1 つだけです。これは、挿入されたすべての行に対応する ID を自動生成するようにデータベースに指示します。生成された ID を持つオブジェクトが Dao.create() メソッドを使用して作成されると、データベースは行の ID を生成します。この ID は create メソッドによって返され、オブジェクトに設定されます。

したがって、 を呼び出した後setDao.create(newSet)newSetオブジェクトのsetIDフィールドはデータベースの ID で変更されます。

また、フィールドの呼び出しsetIDは非常に悪いパターンです。を使用することをお勧めしますid

于 2012-11-09T17:14:07.653 に答える