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

问题描述 投票:-1回答:1

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

@Query("SELECT * FROM foobar WHERE :column IN (:values)")
fun getByFieldName(column: String, vararg values: String): Flowable<List<FooBar>>
android sql kotlin android-room
1个回答
1
投票

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

但别担心,

我们可以使用@query()在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);

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

© www.soinside.com 2019 - 2024. All rights reserved.