考慮我有一個模型: 公司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對象。 –