Я изменяю существующий HQL-запрос, который возвращает отдельные столбцы, а не граф объектов, но теперь я не получаю все нужные мне строки.
Вот несколько фактов о текущей схеме:
- Оценка принадлежит Контракту.
- Свойство Контракта OwningDepartment может быть нулевым.
- Свойство ParentBusinessStream Департамента не может быть пустым
Это запрос:
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
К сожалению, мой запрос не возвращает оценки, если в родительском контракте нет собственного отдела. Вместо этого я хочу, чтобы соответствующие поля были просто нулевыми. Я попробовал левое внешнее соединение, но получил те же результаты.
Любая помощь будет принята с благодарностью. Извиняюсь, что сделал что-то глупое.
* +1019 * Приветствия
Джеймс