如何为本机sql编写的LEFT OUTER JOIN编写等效的JPQL查询?

时间:2017-10-24 05:36:19

标签: java sql spring jpql

这是本机查询 -

 @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查询的语法似乎存在一些问题。

The screenshot of the error -

1 个答案:

答案 0 :(得分:0)

这里的问题似乎是pom.xml,其中 hibernate.entitymanager.version 是5.0.12.Final。将它改为5.1.10.Final为我做了诀窍。

由于maven(https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager)现在不推荐使用hibernate.entitymanager,它实际上下载了jar hibernate-core:5.1.10.Final,因为现在JOIN相关的查询工作正常。