Путь отсутствует для присоединения в JPA - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь сделать сложное объединение таблиц в 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) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...