Frage

Ich führe ein einfaches Löschen eines ormliten Objekts durch. Der Code ist unten. Aber egal was passiert, das Objekt wird nie gelöscht.

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

Vermisse ich hier etwas?

War es hilfreich?

Lösung

So löste ich das Problem: Stellen Sie sicher, dass das Objekt einen Primärschlüssel hat. Das Einstellen des Feldes als ID bedeutet nicht, dass die ID automatisch generiert wird. Ohne die ID fällt Delete fehl.

Andere Tipps

Du musst kreieren DeleteBuilder zum Delete.QueryBuilder Nur für die Abfrage für ausgewählte.

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;
 }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top