【问题标题】:use setMaxResults for first table with one to many join native query对具有一对多连接本机查询的第一个表使用 setMaxResults
【发布时间】:2019-02-14 01:53:31
【问题描述】:

我是休眠新手。 我有如下查询

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 行。

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

感谢任何帮助。 谢谢。

【问题讨论】:

    标签: java mysql hibernate hibernate-onetomany nativequery


    【解决方案1】:

    你可以使用子查询和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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-21
      • 1970-01-01
      • 2012-06-15
      • 2018-03-29
      • 1970-01-01
      相关资源
      最近更新 更多