我试图用绿色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();
但是,任何人都无法帮助我,欢乐,
答案 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();