Frage

Ich bin Änderung einer bestehenden HQL-Abfrage, die eher einzelne Spalten zurückgibt als ein Objektgraph aber jetzt bin ich nicht alle Zeilen bekommen, die ich brauche.

Hier ein paar Fakten über das aktuelle Schema:

  • Eine Schätzung gehört zu einem Vertrag.
  • Die OwningDepartment Eigenschaft eines Vertrages kann null sein.
  • Die ParentBusinessStream Eigenschaft einer Abteilung kann nicht null sein

Dies ist die Abfrage:

select e.ID, e.StatusCode.ID, e.InputDate, e.ParentClient.Name, e.ParentContractLocation.ParentLocation.Description, e.Description, e.InternalRef, e.ExternalRef, e.TotalIncTax, e.TaxTotal, e.Closed, e.ViewedByClient, e.HelpdeskRef, e.ParentContract.Reference, d.ParentBusinessStream.Title, d.Name
from Estimate e, Department d where (e.ParentContract.ID in (select cs.ParentContract.ID from ContractStaff cs
where cs.ParentStaff.ID=:staffID)) and ((d.ID = e.ParentContract.OwningDepartment.ID) OR (d.ID is null)) order by e.ID

Leider meine Abfrage Rückkehr nicht Schätzungen, wenn die Mutter Vertrag keine besitzende Abteilung. Stattdessen möchte ich die entsprechenden Felder nur null sein. Ich habe versucht, eine linke äußere Verknüpfung bekam aber die gleichen Ergebnisse.

Jede Hilfe wäre sehr geschätzt. Entschuldigt, wenn ich etwas Dummes getan haben.

Cheers,

James

War es hilfreich?

Lösung 2

Ich glaube, ich es ausgearbeitet haben: d.ParentBusinessStream.Title ist eine implizite innere Verknüpfung aber da d null sein kann, es funktioniert nicht richtig. Ich habe meine Abfrage zu berücksichtigen dies geändert

Andere Tipps

Ich habe festgestellt, dass ungewöhnliche Anfragen linken Außen enthalten, sind besser dran, schließt sich durch einen ISQLQuery mit dem Sie sowie einige HQL Macht den Zugriff auf die richtige SQL-Syntax gibt.

Abgesehen davon, Sie bieten keine Mapping-Dateien, die in der Regel hilfreich sind

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top