这是我失败的代码(它在一个活动中运行,数据库助手在数据库中创建了 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