Android 如何在room persistent library中构造具有动态列名的SQL查询
这不起作用,我不确定我是否穿错了,或者这是安卓空间的限制Android 如何在room persistent library中构造具有动态列名的SQL查询,android,sql,kotlin,android-room,Android,Sql,Kotlin,Android Room,这不起作用,我不确定我是否穿错了,或者这是安卓空间的限制 @Query("SELECT * FROM foobar WHERE :column IN (:values)") fun getByFieldName(column: String, vararg values: String): Flowable<List<FooBar>> @Query(“从foobar中选择*,其中:列位于(:值)”) fun getByFieldName(列:String,vararg值
@Query("SELECT * FROM foobar WHERE :column IN (:values)")
fun getByFieldName(column: String, vararg values: String): Flowable<List<FooBar>>
@Query(“从foobar中选择*,其中:列位于(:值)”)
fun getByFieldName(列:String,vararg值:String):可流动
@user3063925,您的问题是房间图书馆的限制
但别担心
我们可以使用
现在,您可以将光标行数据转换为POJO类。Room只是扩展了SQLite的占位符系统,在SQLite中,AFAIK不能将列名作为占位符。Room执行编译时检查。我认为你做不到。可能是重复的
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);