有人可以创建一个Greendao(或android sqllite)查询来获得与下一个SQL查询相同的结果吗?
选择 B.*,从 MAINCATEGORYS_TO_LISTINGS A 中选择a.MAIN_CATEGORY_ID 在 b._id=a.MAIN_CATEGORY_ID 上连接 APMAIN_CATEGORY B,其中 listing_id=10120
你可以在GreenDao中使用queryRaw()
方法。
如果我理解您要正确执行的操作,例如:
session.getMainCategoryDao().queryRaw(
" inner join " + MainCategoryToListingsDao.TABLENAME + " MCL "
+ " on T._id = MCL." + MainCategoryToListingsDao.Properties.MainCategoryId.columnName
+ " where MCL." + MainCategoryToListingsDao.Properties.ListingId.columnName
+ " = ?", listing.getId());
它有点丑,但应该可以工作。当然,您必须根据 DAO 的命名方式以及可能您命名属性的方式进行修改。但是当GreenDao在查询中命名你的主表时,它被T锯齿化,主键_id
他们休息你可以通过使用 DAO 的属性来拉动。
这将在即将发布的 greenDAO 1.4 中得到支持。如果需要,您可以从"join"分支构建greenDAO的早期版本:https://github.com/greenrobot/greenDAO/tree/join