gpt4 book ai didi

android - "WHERE IN"声明使用greendao Android ORM

转载 作者:搜寻专家 更新时间:2023-11-01 08:38:33 25 4
gpt4 key购买 nike

我在我的应用程序中使用 greendao 来处理 sqlite 数据库。
我需要具有 where in 条件
这样的功能我正在寻找这样的方法或任何其他可能的方式,但不使用原始查询。

我需要执行这样的查询SELECT * FROM news WHERE id_company IN (SELECT id FROM company WHERE state=1

请建议使用 GreenDAO ORM 执行此类查询的最佳方法是什么。

最佳答案

你可以使用 Lists.transform()来自 Guava,如此处所述 link

List<Company> companies = session.getCompanyDao()
.queryBuilder()
.where(CompanyDao.properties.state.eq(1))
.list();

Function<Company, Integer> companyToId = new Function<Company,Integer>() {
public String apply(Company c) { return c.getId(); }
};

List<Integer> ids = Lists.transform(companies, compnayToId);


session.getNewsDao()
.queryBuilder()
.where(NewsDao.Properties.id_company.in(ids))
.list();

关于android - "WHERE IN"声明使用greendao Android ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34555831/

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