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.