Ich weiß, dass ich nicht DELETE
in einer Abfrage verwenden kann (das ist übrigens eine Schande), ich werde den folgenden Fehler erhalten:
<i>Error:error: Observable query return type (LiveData, Flowable etc) can only be used with SELECT queries that directly or indirectly (via @Relation, for example) access at least one table.</i>
Aber ich kann nicht verwenden. @Delete(WHERE... xxx)
Wie lösche ich eine bestimmte Zeile durch einen Parameter?
java
android
sql
android-room
Jack
quelle
quelle
@Delete
kommentierte Methoden erwähnt. Es ist etwas unklar, was passieren wird, wenn das Modell keine Primärschlüsseldefinition enthält.Tatsächlich können Sie damit
@Query
einen Löschvorgang durchführen.@Query("DELETE FROM users WHERE user_id = :userId") abstract void deleteByUserId(long userId);
Aus Query javadoc extrahiert :
quelle
delete
(normal) unddelete
beiid
Abfragen?Sie können die folgende Methode verwenden, um nach ID zu löschen
@Query("DELETE FROM yourDB WHERE id = :id") void deleteById(int id);
zum Löschen aller Zeilen
@Query("DELETE FROM yourDB") void delete();
quelle