gpt4 book ai didi

android - 如何高效查询包含两个WHERE子句的表(Android Room)

转载 作者:行者123 更新时间:2023-12-02 02:08:03 25 4
gpt4 key购买 nike

假设我有一个对象

class Person {
String firstName;
String lastName;
... other fields...
}

和一个包含

的数据库
@Entity
class DatabaseTable {
String firstName;
String lastName;
... other unrelated fields from person...
}

现在在我的 Dao 中,我已经

@Query("SELECT * FROM DatabaseTable WHERE " +
" firstName = :firstName AND lastName = :lastName")
List<DatabaseTable> getAll(String firstName, String lastName);

我有一个要从中查询 DatabaseTable 的列表。

Person("Apple", "Kohn", ...)
Person("Benny", "Lorie", ...)
Person("Cindy", "May", ...)
...

我如何有效地提取数据库表?为列表中的每个人调用 dao 似乎不正确。

编辑:

我想知道如何使用单个查询来检索结果列表。

我知道 Room 在幕后使用 ContentValue 来循环实体列表。有没有办法让我们创建自己的 contentValue 并传递到 Room 中?

下面的情况可能吗?

getAllWithPairs( List<String> firstNames, List<String> lastNames);

最佳答案

通过在 WHERE 语句的第一部分后添加 AND,您可以附加其他 WHERE 逻辑。

示例

@Query("SELECT * FROM content WHERE timestamp >= :timeframe AND feedType = :feedType ORDER BY qualityScore DESC")
fun getMainContent(timeframe: Date, feedType: FeedType): DataSource.Factory<Int, Content>

关于android - 如何高效查询包含两个WHERE子句的表(Android Room),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47007860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com