green dao如何对四个属性

时间:2016-06-28 20:26:20

标签: java android query-builder greendao

我试图用绿色dao写一个查询,而且无法弄清楚如何说出我想说的话, 我有3个属性我将我的查询集中在CardIconType,Type_of_word和Type_of_type(可怕的命名约定但请不要专注于此) 我想要返回的是CardIconType的所有项目,其中包含" ORIGINAL"以及说" USER"的所有CardIconType项目但只有当Type_of_type为" PRONOUN"和Type_of_word是" QUICKS"

我做了什么

到目前为止,我已尝试过这个

qb.where(addNewCardDao.Properties.CardIconType.eq("ORIGINAL"),
qb.and(addNewCardDao.Properties.Type_of_type.eq("PRONOUNS"),
addNewCardDao.Properties.Type_of_word.eq("QUICKS")));
            leaseList = qb.list();

它解决了我的一半问题,它返回了" ORIGINAL"的所有对象。其中Type_of_type是" PRONOUNS和Type_of_word是" QUICKS"我的第一个想法是再次为USER做这个并加入列表,但我不认为这是最好的方法,所以我尝试了这个

 qb.where(addNewCardDao.Properties.CardIconType.eq("SIMPLE"),
                    qb.or(addNewCardDao.Properties.CardIconType.gt("USER"),

 qb.and(addNewCardDao.Properties.Type_of_type.eq("PRONOUNS"), 
 addNewCardDao.Properties.Type_of_word.ge("QUICKS"))));
            leaseList = qb.list();

但是,任何人都无法帮助我,欢乐,

1 个答案:

答案 0 :(得分:1)

使用QueryBuilder.in()方法在一个属性中查找多个值。

String[] strings = {"ORIGINAL", "USER"};
qb.where(addNewCardDao.Properties.CardIconType.in(strings),

然后添加其他限制:

qb.and(addNewCardDao.Properties.Type_of_type.eq("PRONOUNS"),
addNewCardDao.Properties.Type_of_word.eq("QUICKS")));

正好列出它:

leaseList = qb.list();