0

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

ここで何か不足していますか?

4

2 に答える 2

2

これが問題の解決方法です。オブジェクトに主キーがあることを確認してください。フィールドを ID として設定しても、ID が自動生成されるわけではありません。ID がないと、削除は失敗します。

于 2011-01-22T07:41:25.527 に答える
0

get Query for Select のDeleteBuilderためだけに for を作成する必要があります。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;
 }
于 2012-09-08T13:14:07.163 に答える