失敗したコードは次のとおりです(アクティビティ内で実行されており、DBヘルパーがデータベースにWishListオブジェクトを作成します)
DatabaseHelper helper = DatabaseHelper.getInstance( getActivity() );
int savedID = 0;
WishList wl = new WishList();
wl.setName("abc");
try {
savedID = helper.getWishListDao().create(wl);
WishList wl_saved = helper.getWishListDao().queryForId( savedID );
wl_saved.getId();
} catch (SQLException e) {
e.printStackTrace();
}
これが私のエンティティです。ID フィールドは自動生成されます。
@DatabaseTable
public class WishList {
@DatabaseField(generatedId = true)
private int id;
@DatabaseField( canBeNull = false , unique = true )
private String name;
@ForeignCollectionField
private ForeignCollection<WishItem> items;
...
データベースで生成された ID が、以下の呼び出しで ORMlite が返す ID と同じではないことが問題です。1 を返します。
savedID = helper.getWishListDao().create(wl);
データベースの ID は実際には 37 です。何が間違っているのでしょうか? バージョン 4.41 の使用