java - 对带有一对多连接 native 查询的第一个表使用 setMaxResults

标签 java mysql hibernate hibernate-onetomany nativequery

我是 hibernate 新手。 我有一个如下查询

select a.*, b.* from tableA a 
join tableB b on b.aId = a.id 
left join tableC c where <condition>

这里从a到b是一对多的关系,b到c是一对一的关系。

现在我需要从 tableA 获取第一个行数以及所有连接结果。

例如,tableA 中有 10 行,每行都与 tableB 中的 2 行连接。现在,如果我要查询 tableA 中的前 5 行,那么我需要连接其他表中的所有这些行,总共 20 行。

如何为此编写 native 查询。我需要执行 native 查询,在这种情况下我需要性能,因为我们的查询可能会限定大量行。

感谢任何帮助。 谢谢。

最佳答案

您可以使用子查询和LIMIT:

select a.*, b.* 
from (SELECT * FROM tableA ORDER BY some_col LIMIT 5) a 
join tableB b on b.aId = a.id 
left join tableC c where <condition>

关于java - 对带有一对多连接 native 查询的第一个表使用 setMaxResults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52244079/

相关文章:

java - maven 存储库 sun.security.validator.ValidatorException : PKIX path building failed: sun. security.provider.certpath.SunCertPathBuilderException:

mysql - 将同一个外键添加到一个表的96列

Java Hibernate Lazy=false

PHP 为日历生成和命名 html 到 mysql 数据库

php - 我需要使用表中的员工 ID 从 mysql 数据库中获取数据

hibernate - 实体类和持久类有什么区别?

mysql - Hibernate 中最简单的一对多映射案例在 MySQL 中不起作用

java - 将 Controller /模型//服务/持久性放入 Maven 中的不同模块有什么好处?

java - 使用带有凭据的 $HTTP 在 angularJs 中发布时解决 CORS

java - 无法使用 IntelliJ 解析 Git 存储库文件中的符号