
我想用各种这样的运算符来获取记录.例如,“liKE%?”,“liKE?%”和“liKE%?%”.但GreenDAO不支持它.
我也使用了queryRaw()和queryRawCreate(),遗憾的是它也没有用.
例如:
libDocSerIEsDao.queryRawCreate(
” Where T.Title like ‘%?%’ Or T.VIEwTitle like ‘%?%'”,aKeyword,
aKeyword).ListLazy();
任何帮助将不胜感激.
解决方法 使用’?’时,’%’字符不能是查询字符串的一部分字符.绑定参数时,可以使用%的任意组合.以下是如何使用liKE查询的示例(取自greenDA的https://github.com/greenrobot/greenDAO/commit/788313904fa58a0c8628f6b2e016a4a385f344c6单位测试):
query<TestEntity> query = dao.queryBuilder().where(PropertIEs.SimpleString.like("%robot")).build();TestEntity entity2 = query.uniqueOrThrow();assertEquals(entity.getID(),entity2.getID());query.setParameter(0,"green%");entity2 = query.uniqueOrThrow();assertEquals(entity.getID(),"%enrob%");entity2 = query.uniqueOrThrow();assertEquals(entity.getID(),entity2.getID()); 相同的原则对原始查询有效.对于您的示例,您应该这样做:
libDocSerIEsDao.queryRawCreate(" Where T.Title like ? Or T.VIEwTitle like ?",aKeyword).ListLazy(); 此外,aKeyword必须具有%字符.
总结以上是内存溢出为你收集整理的android – 为什么GreenDAO不完全支持LIKE运算符?全部内容,希望文章能够帮你解决android – 为什么GreenDAO不完全支持LIKE运算符?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)