房间坚持图书馆。 删除所有

如何使用房间持久性库删除特定表上的所有条目? 我需要放桌子,但我不能find任何信息如何做到这一点。

只有当数据库正在迁移或加载所有条目并删除它们:)

Solutions Collecting From Web of "房间坚持图书馆。 删除所有"

您可以创build一个DAO方法来执行此操作。

@Dao interface MyDao { @Query("DELETE FROM myTableName") public void nukeTable(); } 

对于Migration ,您将传递一个SupportSQLiteDatabase并可以通过execSQL()删除所需内容。

除此之外,你可以在你的RoomDatabase上调用getOpenHelper()并从中获得一个SupportSQLiteDatabase ,再一次调用execSQL()来删除你想要的东西。

我没有看到删除所有实体的基于注释的方式,除非您碰巧将所有实体都放在内存中,并且可以将它们传递给您的Dao上的@Delete方法。

我知道你已经得到了一个正确的答案,但是为了和SQLite一起工作,你也可以试试Kripton持久化库(现在版本为2.0.2),这是Room的一个替代scheme。 Kriptonpipe理SQLite,SharedPreference,REST服务(使用Retrofit)和文件系统的持久性。

使用Kripton,与Room Library显示的代码相同:

 @BindDao(User.class) public interface MyDao { @BindSqlDelete public void nukeTable(); } 

我是Kripton的作者。 有关Kripton持久性库的更多信息: