4
对象这里是我的代码失败(这是一个活动中运行和DB助手在数据库中创建愿望清单对象罚款)ORMlite也不回我刚才保存
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回报。它返回1.
savedID = helper.getWishListDao().create(wl);
数据库中的ID实际上是37.任何想法我可能做错了什么? 使用版本4.41
就是这样,我只是因为第一次我跑我的测试它通过去了错误的轨道上(该ID分配给我对象当然是...... 1)当我们谈论这个时,是否有效的假设是,如果方法根据文档返回1,这可以被视为更新/插入成功的指示?文档确实指定了这个 – MayoMan 2012-07-05 14:28:48
真的,你可以忽略来自'create'的1。这有点历史。如果有SQL问题,'create'会抛出异常。当您谈论批量删除和更新时,更改的行数更重要。 – Gray 2012-07-05 15:03:37
@Gray为CREATE更改的行数在SQL中仍然有用处。有一些SQL语句可以从一个表中选择多行并将它们一次插入另一个表中。创建并不总是返回1.因此它不是历史的。 – 2014-09-02 19:15:30