[英]JPQL Join (Hibernate)
我在項目中使用JPA (Hibernate)
,並且在未顯式設置Entities
之間的關系的情況下無法編寫JOIN
查詢。
我記得在TOPLINK
做過同樣的事情。
查詢:
范例1:
SELECT a FROM
EntityA a
INNER JOIN EntityB b on b.col1=a.col1
INNER JOIN EntityC c on c.col1=b.col1
LEFT JOIN EntityC c on c.col1=a.col1
錯誤:
Unexpected token "on"
范例2:
SELECT a FROM
EntityA a
INNER JOIN EntityB b
INNER JOIN EntityC c
LEFT JOIN EntityC c
WHERE b.col1=a.col1 AND c.col1=b.col1 AND c.col1=a.col1
錯誤:
ERROR o.hibernate.impl.SessionFactoryImpl - Error in named query:
org.hibernate.hql.ast.QuerySyntaxException: Path expected for join!
[SELECT **MY QUERY HERE**]
at org.hibernate.hql.ast.QuerySyntaxException.convert
(QuerySyntaxException.java:54)
~[hibernate3.jar:na]
ERROR org.hibernate.hql.PARSER - Path expected for join!
ERROR org.hibernate.hql.PARSER - Invalid path: 'b.col1'
ERROR org.hibernate.hql.PARSER - Invalid path: 'c.col1'
請不要太在意實體和列的名稱,因為它們不是課程的實際名稱:)
謝謝你的時間。
如果模型中沒有關聯,則無法使用普通聯接。 如果確實存在關聯,則也可以將其添加到模型中。
如果不是這樣,則可以在HQL中進行交叉聯接(這會影響選擇列表中的值):
FROM A as a, B as b WHERE b.col1=a.col1
其他方法可以從這里找到。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.