如何在室外持久库中使用动态列名构造SQL查询

时间:2017-10-16 19:13:47

标签: android sql kotlin android-room

这不起作用,我不确定我是否穿错了,或者它是否是Android的限制

@Query("SELECT * FROM foobar WHERE :column IN (:values)")
fun getByFieldName(column: String, vararg values: String): Flowable<List<FooBar>>

1 个答案:

答案 0 :(得分:1)

@ user3063925,您的问题是限制房间图书馆,

但别担心,

  

我们可以使用。在Room数据库上编写完全动态的查询   @query()

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

现在,您可以将游标行方式数据转换为POJO类。