查询DSL左连接查询

时间:2017-04-09 06:50:24

标签: java sql querydsl

我是Query DSL的新手。现在我需要在Query 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));

我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果没有定义ParentMsg和ChildMsg实体之间的关系,Hibernate Version Hibernate 5.1将不允许加入。

如果您使用的是hibernate 5.1或更高版本,则以下内容将起作用。

q.from(qParentMsg).leftJoin(qChildMsg).on(qParentMsg.id.eq(qChildMsg.id));