我正在执行ormlite对象的简单删除。代码如下。但无论如何,对象永远不会被删除。
Dao<Subscription, Object> dao = helper.getSubscriptionDataDao();
dao = helper.getSubscriptionDataDao();
QueryBuilder<Subscription, Object> query = dao.queryBuilder();
query.where().eq("key", subKey);
Subscription sub = dao.queryForFirst(query.prepare());
int r = dao.delete(sub); // r is 1
我在这里遗漏了什么吗?
答案 0 :(得分:2)
这就是我解决问题的方法:确保对象有主键。将字段设置为ID并不意味着将自动生成ID。没有ID,删除将失败。
答案 1 :(得分:0)
您必须为DeleteBuilder
创建Delete.QueryBuilder
,才能获取选择查询。
public int deleteByObjectId(int objectId) throws SQLException, java.sql.SQLException
{
DAL<T> helper= new DAL<T>(_context, type);
RuntimeExceptionDao<T, Integer> dao =helper.getSimpleDataDao2();
DeleteBuilder<T, Integer> delBuilder =dao.deleteBuilder();
delBuilder.where().eq("ObjId", objectId);
PreparedDelete<T> prepareQery=delBuilder.prepare();
int i=dao.delete(prepareQery);
return i;
}