Jac*_*ack 45 java sql android android-room
我知道我不能DELETE在查询中使用(顺便说一下这是一种耻辱),我会得到以下错误:
<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>
Run Code Online (Sandbox Code Playgroud)
但我不能使用@Delete(WHERE... xxx)
那么如何通过参数删除特定的行?
Mar*_*ues 119
实际上,您可以使用它@Query来执行删除.
@Query("DELETE FROM users WHERE user_id = :userId")
abstract void deleteByUserId(long userId);
Run Code Online (Sandbox Code Playgroud)
从Query javadoc中提取:
UPDATE或DELETE查询可以返回void或int.如果是int,则该值是受此查询影响的行数.
Awa*_*ais 43
房间的美丽是,我们玩物体.根据要求,您可以使用kotlin:
@Delete
fun delete(model: LanguageModel)
Run Code Online (Sandbox Code Playgroud)
对于Java:
@Delete
void delete(LanguageModel model)
Run Code Online (Sandbox Code Playgroud)
它将使用相同的值删除存储在db中的确切对象.LanguageModel是我的模型类,它完美地运行.
Fax*_*yev 22
您可以使用以下方法按 ID 删除
@Query("DELETE FROM yourDatabaseTable WHERE id = :id")
void deleteById(int id);
Run Code Online (Sandbox Code Playgroud)
删除所有行
@Query("DELETE FROM yourDatabaseTable")
void delete();
Run Code Online (Sandbox Code Playgroud)
小智 6
ROOM 数据库提供了在数据库中插入、更新和删除对象的简单方法。执行这样的操作只需要注释@Delete即可。DELETE操作返回 Int,当删除单个对象成功时返回 1,否则返回 0 如果 DELETE 操作不成功,添加返回类型是一个很好的做法。
KotlinEG.kt
@Dao
interface EntityLocalDAO {
@Delete
fun deleteData(entityObject: EntityObject) : Int
}
Run Code Online (Sandbox Code Playgroud)
javaEG.java
@Dao
interface EntityLocalDAO {
@Delete
int deleteData(EntityObject entityObject);
}
Run Code Online (Sandbox Code Playgroud)