考虑我有一个模型: 公司1 - N的人GreenDAO左连接
我想显示他们的名字和他们公司的名字的人的名单。 但并非每个人都有一家公司。
我为了避免在新的SQL查询来person.getCompany()
结果每次调用,所以我在想添加一个连接:
QueryBuilder<Person> queryBuilder = session.getPersonDao().queryBuilder();
queryBuilder.join(PersonDao.Properties.CompanyId, Company.class);
queryBuilder.list()
的问题是,我只得到了公司的人,因为产生查询使用等效于INNER JOIN的JOIN。我认为我需要LEFT JOIN才能找到没有公司的人。
现在看来GreenDAO并不支持LEFT JOIN。是否有另一种方法可以在不进行原始查询的情况下提出请求?
如果您打算使用不同的ORM,我可以推荐使用JDXA ORM(http://softwaretree.com/v1/products/jdxa/jdxa.html)。 JDXA将获取所有合格的Person对象和任何关联的公司对象。如果关联的公司对象不存在,则仍会提取Person对象。 –