Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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+Hibernate+命名查询+如何加入子查询结果_Hibernate_Jpa - Fatal编程技术网

JPA+Hibernate+命名查询+如何加入子查询结果

JPA+Hibernate+命名查询+如何加入子查询结果,hibernate,jpa,Hibernate,Jpa,有人能帮我把下面的本机查询转换成命名查询吗 本机查询: 提前谢谢 斯利哈里 我建议将此移到存储过程并从JPA调用存储过程。根据您的对象模型,您应该考虑查询的目的。如果应该制定HQL查询,那么查看SQL语句在语义上是一个问题 尽管如此,在基于Hibernate的应用程序中,创建θ样式的查询(甚至作为命名查询)仍然是可能的,而且是常见的 HQL查询在大多数情况下看起来与本机查询相同,只是它利用了对象模型的关系。这些关系对查询的定义方式有很大影响。而不是从学校实体开始。它们可能从用户数据集开始 SEL

有人能帮我把下面的本机查询转换成命名查询吗

本机查询:

提前谢谢

斯利哈里
我建议将此移到存储过程并从JPA调用存储过程。

根据您的对象模型,您应该考虑查询的目的。如果应该制定HQL查询,那么查看SQL语句在语义上是一个问题

尽管如此,在基于Hibernate的应用程序中,创建θ样式的查询(甚至作为命名查询)仍然是可能的,而且是常见的

HQL查询在大多数情况下看起来与本机查询相同,只是它利用了对象模型的关系。这些关系对查询的定义方式有很大影响。而不是从学校实体开始。它们可能从用户数据集开始

SELECT ....
FROM User user1, User user2
JOIN User.school as school
...
WHERE school = user2.school
遵循一对一的关系确实更容易,因此我通常会以一种方式重新构建查询,使它们倾向于以这种方式执行i

SELECT ....
FROM User user1, User user2
JOIN User.school as school
...
WHERE school = user2.school