我是Query DSL的新手。现在,我需要在查询DSL中编写以下简单查询:
select * from parent_msq pm left join child_msg cm on (cm.id = pm.id)
我尝试这样做:
QParentMsg qParentMsg = QParentMsg.parentMsg;
QChildMsg qChildMsg = QChildMsg.childMsg;
JPAQuery q = new JPAQuery(em);
q.from(qParentMsg).leftJoin(qParentMsg.id, qChildMsg).on(qParentMsg.id.eq(qChildMsg.id));
我究竟做错了什么?
最佳答案
如果未定义ParentMsg和ChildMsg实体之间的关系,则Hibernate 5.1之前的Hibernate版本将不允许连接。
如果您使用的是hibernate 5.1或更高版本,则可以进行以下操作。
q.from(qParentMsg).leftJoin(qChildMsg).on(qParentMsg.id.eq(qChildMsg.id));
关于java - 查询DSL左联接查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43303877/