Проблема с гибернацией: объект сеанса дает смешанные результирующие наборы данных при выполнении 2 именованных запросов для одного и того же объекта с разными параметрами - PullRequest
0 голосов
/ 09 июля 2020

У меня есть 2 именованных запроса для объекта с разными параметрами. При выполнении 1-го запроса с обязательным параметром в моем классе обслуживания результаты данных из базы данных в порядке. Но при последовательном выполнении второго запроса с его параметром в том же классе обслуживания результаты данных смешиваются с данными предыдущего запроса.

Например. = У объекта есть имя пользователя и роль, и в таблице может быть несколько строк для 1 пользователя с разными ролями.

  • Запрос 1 дает результат - 1. User_A & roll_A
  • Запрос 2 дает результат - 1. User_B & roll_B 2. User_B & roll_C 3. User_B & roll_D

теперь код выполняет 1-й запрос и 2-й запрос, запрос 1 дает правильный результат, но запрос 2 дает результат как 1. User_A & roll_A 2. User_B & roll_C 3. User_B & roll_D

При изменении порядка запрос 2 дает правильный результат, а запрос 1 дает результат как User_B & roll_B

Это произошло после того, как я переместил аннотацию @transactional от уровня dao до уровня обслуживания. Раньше он работал нормально. Если кто-то столкнется с такой ситуацией, пожалуйста, предложите какое-нибудь решение.

...