[英]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.