2017-04-09 18 views
0

私はQuery 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));