Betrachten Ich habe ein Modell: Firma 1 - N PersonGreenDAO LEFT JOIN
Ich möchte mit ihren Namen und ihre Firmennamen eine Liste von Personen angezeigt werden soll. Aber nicht jede Person hat eine Firma.
bestelle ich jeden Anruf person.getCompany()
Ergebnisse in einer neuen SQL-Abfrage zu vermeiden, dass so etwa dachte ich eine Zugabe beitreten:
QueryBuilder<Person> queryBuilder = session.getPersonDao().queryBuilder();
queryBuilder.join(PersonDao.Properties.CompanyId, Company.class);
queryBuilder.list()
Das Problem ist, dass ich nur die Personen mit einem Unternehmen erhalten, weil die erzeugte query verwendet JOIN, was INNER JOIN entspricht. Ich denke, ich brauche LEFT JOIN, um auch die Personen ohne Firma zu bekommen.
Es scheint nicht GreenDAO unterstützt LEFT JOIN jetzt. Gibt es eine andere Möglichkeit, die Anfrage ohne eine rohe Anfrage zu stellen?
Wenn Sie ein anderes ORM verwenden möchten, kann ich JDXA ORM vorschlagen (http://softwaretree.com/v1/products/jdxa/jdxa.html). JDXA ruft alle qualifizierten Person-Objekte und alle zugehörigen Company-Objekte ab. Wenn ein zugehöriges Firmenobjekt nicht existiert, wird ein Personenobjekt trotzdem abgerufen. –