Ormlite Delete ist fehlgeschlagen
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?
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