room example delete all java android sql android-room

java - example - Android Room @Delete con parámetros



crud room android (2)

En realidad, puedes usar @Query para realizar una eliminación.

@Query("DELETE FROM users WHERE user_id = :userId") abstract void deleteByUserId(long userId);

Extraído de la consulta javadoc :

Las consultas UPDATE o DELETE pueden devolver void o int. Si es un int, el valor es el número de filas afectadas por esta consulta.

Sé que no puedo usar DELETE en una consulta (que es una vergüenza por cierto), obtendré el siguiente error:

<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>

Pero no puedo usar @Delete(WHERE... xxx) Entonces, ¿cómo @Delete(WHERE... xxx) una fila específica por un parámetro?


La belleza de la habitación es que jugamos con los objetos. Según el requisito que puede utilizar para kotlin:

@Delete fun delete(model: LanguageModel)

para Java:

@Delete void delete(LanguageModel model)

eliminará el objeto exacto que se almacena en la base de datos con los mismos valores. LanguageModel es mi clase de modelo y funciona perfectamente.