Pergunta

I am performing a simple delete of a ormlite object. The code is below. But no matter what, the object never get deleted.

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

Am I missing anything here?

Foi útil?

Solução

This is how I solve the problem: Make sure the object have primary key. Setting the field as ID does not mean the ID will be auto generated. Without the ID, delete will fail.

Outras dicas

You must create DeleteBuilder for Delete.QueryBuilder just for get Query for Select .

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;
 }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top