繁体   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