2017-04-09 91 views
0

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

我在做什么错?

+0

您收到了哪些错误信息? – toonice

回答

0

如果未定义ParentMsg和ChildMsg实体之间的关系,则Hibernate 5.1之前的Hibernate版本将不允许加入。

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

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