Я пытаюсь сделать сложное объединение таблиц в JPA / Hibernate. Некоторые из этих таблиц не имеют традиционного первичного ключа / внешнего ключа, и ни у одного из объектов домена нет аннотаций отношений.
Я получаю следующее сообщение об ошибке при попытке выполнить поисковый запрос:
org.hibernate.hql.internal.ast.QuerySyntaxException: Path expected for join! [
select new com.allegiant.dmx.accounting.api.purchaseorder.dto.PurchaseOrderDto(
PO.ponumber, PO.povendor, V.apname1, '-cageCode-', PO.postatus, '123,345', '123A, 123B', PO.polocn, PO.dueDate, PO.porefnum, PO.creatorId, PO.latestApproverId)
from com.allegiant.dmx.accounting.domain.POMaster PO
LEFT JOIN APMASTER V ON V.apvendor = PO.povendor
LEFT JOIN com.allegiant.dmx.accounting.domain.PODetail D ON substring(D.pdpo,1,2) = PO.pocat AND substring(D.pdpo,3) = PO.ponumber
LEFT JOIN com.allegiant.dmx.accounting.domain.PartsRequestLine PRL ON PRL.podetailRecId = D.recId
LEFT JOIN com.allegiant.dmx.accounting.domain.PartsRequest PR ON PRL.requestId = PR.requestId where PO.pocat = :pocat and PRL.requestLineId = :eprLineId GROUP BY PO.recId
]
Как вы можете видеть, у меня есть пользовательские предложения и псевдонимы ON для каждого соединения, поэтому я не знаю, какой «путь» отсутствует.
Вот подпись конструктора, который я пытаюсь вызвать в запросе:
public PurchaseOrderDto(String ponumber, String povendor, String vendorName, String cageCode,
PurchaseOrderStatus status, String partsRequestIds, String partsRequestLineIds,
String polocn, Date dueDate, String porefnum, String creator, String latestApproverId) {