Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在room persistent library中构造具有动态列名的SQL查询_Android_Sql_Kotlin_Android Room - Fatal编程技术网

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