我试着用绿刀写一个查询,不知道怎么说我想说的话,我有3个属性,我的查询集中在CardIconType, Type_of_word和Type_of_type(可怕的命名约定,但请不要专注于此)我想返回的是CardIconType的所有项目都说"ORIGINAL"和CardIconType的所有项目都说"USER",但只有当Type_of_type是"PRONOUN"和Type_of_word是"quick"
WHAT I'VE try
到目前为止,我试过了
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是"代词和Type_of_word是"快速",我的第一个想法是再次为用户这样做并加入列表,但我不认为这是最好的方法,所以我然后尝试了这个
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();
但是没有乐趣,有人能帮我吗?
使用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();