Hibernate выполняет запросы последовательно - PullRequest
0 голосов
/ 29 июня 2018

Я использую переменные запроса в своем спящем MySQL запросе hibernate. Для каждого выполнения я должен установить переменную запроса как 0.

для этого я выполняю другой запрос, как

SET @var: = 0.

Но Spring делает вещи асинхронными. Он выполняет другой запрос после установки переменной. Поэтому результаты не такие, как ожидалось.

У меня есть заголовок и элементы таблиц. Каждый заголовок содержит несколько элементов.

Пример

header = {h1, h2, h3},

товар = {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 на 2-й странице.

если я использую соединения с ключевым словом 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 для каждого выполнения запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...