在MySQL中它的工作原理:QuerySyntaxException:意外的標記:
SELECT * FROM carparks a
LEFT JOIN (SELECT * FROM locales_carparks)
c ON a.carpark_id=c.carpark_id
熱水將其翻譯爲JPA:
@Query("SELECT a FROM Carparks a LEFT JOIN("
+"SELECT b FROM a.locales b"
+")")
拋出:IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException :意外的標記: (靠近第1行,第72列[SELECT a FROM database.model.carpark.Carparks a LEFT JOIN(SELECT b FROM a.locales b)]
我已經簡化了示例以顯示問題的實質。通常我只使用SELECT a FROM Carparks a LEFT JOIN a.locales
和它的作品,但在我的情況下,我想使用嵌套的SELECT,因爲我的查詢要複雜得多
嘿,你的實體映射到一對多的關係嗎? – user1211
寫一個簡單的方法是@Query(「選擇*從A左邊加入B b在a.id = b.id」) – user1211
所以當然我使用關係,我想簡化它,這是原因我沒有收錄它。是的,我嘗試加入a.id = b.id,但與JPA這不起作用,因爲JPA自動識別關係。 和關鍵字「on」必須省略 – user3871754