Querydsl:经柱如何让左连接(Querydsl: how to make left join

2019-10-22 18:45发布

我试着去在querydsl这个SQL查询相匹配

SELECT tr.* FROM test.TRIP_REQ tr left outer join test.ADDR_BOOK ab on tr.REQ_USERID=ab.USER_ID  

我知道如何使LEFT JOIN查询,如果你加入到标识列,但斗争,使之与加入2点替代的列上工作。 tr.REQ_USERID和ab.USER_ID都没有标识列

这是我的querydsl:

QTripReq qTripReq = QTripReq.tripReq;
QAddressBook qABook = QAddressBook.addressBook;
JPAQuery query = new JPAQuery(entityManager);
query.from(qTripReq).leftJoin(qABook).on(qTripReq.requestorUser.id.eq(qABook.user.id)).list(qTripReq);

这将引发错误:

路径预期的加入! [从com.TripReq tripReq选择tripReq左加入ADDR_BOOK ADDRESSBOOK与tripReq.requestorUser.id = addressBook.user.id其中tripReq.assignedCompany.id =?1]

Answer 1:

您需要将目标实体路径添加到leftJoin()使

QTripReq qTripReq = QTripReq.tripReq;
QAddressBook qABook = QAddressBook.addressBook;
JPAQuery query = new JPAQuery(entityManager);
query.from(qTripReq).leftJoin(qTripReq.addressBook, qABook).on(qTripReq.requestorUser.id.eq(qABook.user.id)).list(qTripReq);

采取一看使用连接在文档部分。



文章来源: Querydsl: how to make left join by column
标签: sql querydsl