Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa 如何在JPQL中内部联接子查询_Jpa_Jpa 2.0_Jpql - Fatal编程技术网

Jpa 如何在JPQL中内部联接子查询

Jpa 如何在JPQL中内部联接子查询,jpa,jpa-2.0,jpql,Jpa,Jpa 2.0,Jpql,我需要一个用于MySQL查询的JPQL: SELECT * FROM table1 t1 INNER JOIN table2 t2 ON t1.id = t2.table1.id INNER JOIN (SELECT * FROM table1 t3 INNER JOIN table2 t4 ON t3.id = t4.table1.id WHERE t3.name = 'xxx') subTable ON t1.number

我需要一个用于MySQL查询的JPQL:

SELECT * 
FROM table1 t1 
INNER JOIN table2 t2 
  ON t1.id = t2.table1.id 
INNER JOIN (SELECT * FROM table1 t3 
            INNER JOIN table2 t4 ON t3.id = t4.table1.id 
            WHERE t3.name = 'xxx') subTable 
  ON t1.number = subTable.number 
WHERE t1.number = '5' 
  AND id = '3'

您的查询似乎相当病态,可能会说您试图查询的结果,并包括您的对象模型

通常,JPQL不支持from子句中的子选择,因此您的查询不能直接转换为JPQL


您始终可以将其作为JPA本机SQL查询执行,由于您似乎对SQL比JPQL更熟悉。

没有任何实体结构的信息,因此很难了解必要的JPQL查询。table1和table2之间的关系是table2有一个table1的id字段。然后,table1和table2的公共列很少,table2属于其他表(对于EX:TabLe3),我们不需要考虑表3,因为我们在这两个表中的列内部连接表1和表2,它本身不讨论数据库的结构。为了说明JPQL查询,我需要知道如何设计实体对象,如何实现实体之间的映射。