How to dynamically query the room database at runtime?

后端 未结 8 1853
青春惊慌失措
青春惊慌失措 2020-11-30 05:42

The problem

Is it possible construct a query at runtime?


Use case

@Query(\"SELECT * FROM playlist \" +
        \"WHERE play         


        
8条回答
  •  栀梦
    栀梦 (楼主)
    2020-11-30 05:56

    @Anderson K & @Juanky Soriano, I'm agree with @CommonsWare,

    There some Limitation in Room Library, then also We can write fully dynamic query on Room Database by using the @query() of Support SQLite Database

    String mQuery = "SELECT * FROM foobar WHERE columnName1 IN ('value_1','value_2') and columnName2 In('value_3','value_4')";
    
    AppDatabase appDatabase = Room.databaseBuilder(getApplicationContext(),
            AppDatabase.class, "database-name").build();
    
    Cursor mCursor = AppDatabase.getAppDatabase(context).getOpenHelper().getReadableDatabase().query(myQuery);
    

    Now you can convert cursor row wise data to your POJO class.

提交回复
热议问题