簡體   English   中英

如何為用本地sql編寫的LEFT OUTER JOIN編寫等效的JPQL查詢?

[英]How to write equivalent JPQL query for LEFT OUTER JOIN written in native sql?

這是本機查詢-

 @Query(nativeQuery = true, value = "SELECT CA FROM CLASS_ATTRIBUTE,WORD_PROCESSING WHERE ( word_processing.uoid  = class_attribute.c_user_explanation(+)) ORDER BY CLASS_ATTRIBUTE.DESCRIPTION ASC 

我嘗試了以下JPQL查詢,但沒有成功-

    @Query(value = "SELECT CA FROM ClassAttribute CA LEFT JOIN CA.WordProcessing AS WP ON ( WP.id  = CA.userExplanationUoid) ORDER BY CA.description ASC")

還嘗試了以下JPQL-

    @Query(value = "SELECT CA FROM ClassAttribute CA LEFT OUTER JOIN CA.WordProcessing AS WP WHERE ( WP.id  = CA.userExplanationUoid) ORDER BY CA.description ASC")

如果嘗試這些,編譯將進入無限循環。 Spring框架中的某些內容使它一次又一次刷新。 轉換后的JPQL查詢的語法似乎存在一些問題。

錯誤的屏幕截圖-

看來這里的問題出在pom.xml上,其中hibernate.entitymanager.version是5.0.12.Final。 將其更改為5.1.10.Final幫了我大忙。

由於Maven現在不推薦使用hibernate.entitymanager( https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager ),因此它實際上下載了jar的hibernate-core:5.1.10.Final版本,因為與JOIN相關的查詢是現在工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM