休眠顺序执行查询

时间:2018-06-29 13:27:35

标签: mysql spring hibernate nativequery

我在休眠的本地mysql查询中使用查询变量。对于每次执行,我都应将查询变量设置为0。

为此,我正在执行另一个查询,例如

  

SET @var:= 0。

但是spring使事情变得异步了。它在设置变量后执行另一个查询,因此结果与预期不符。

我有标题和项目表。每个标题都有多个项目。

示例

  

header = {h1,h2,h3},

     

items = {i1,i2,i3,i4,i5,i6,i7,i8}

     

h1-> {i1,i2,i3},h2-> {i4,i5},h3-> {i6,i7,i8}

我想要

这样的结果
  

第1行:h1,i1

     

第2行:h1,i2

     

row3:h1,i3

     

以此类推。

我们可以在此处使用联接。但就我而言,我将结果作为分页来获取。

就像第一页的前1到10个页眉(带项目),第二页的第1至20个标题..

如果我使用带有 limit 关键字的联接,我们将获得所需的记录。

但是在这里我想要每页的页眉数。

这就是为什么我使用查询变量@cnt来计数标头。

查询是:

  

SET @cnt:=0;

     

SELECT pk_header_id, pk_item_id, @cnt := IF( @header_id is not null AND @header_id != pk_header_id, @cnt := @cnt + 1, @cnt) AS cnt, @header_id:=pk_header_id FROM header join item on fk_header_id = pk_header_id order by pk_header_id.

对于每次执行,@ cnt变量都会增加到10,对于每次查询执行,我都应将其设置为0。

0 个答案:

没有答案