Спящий именованный запрос (выберите) - PullRequest
1 голос
/ 15 марта 2019

Мы используем hibernate в качестве ORM в нашем проекте вместе со средой Spring. Сегодня я столкнулся с одной проблемой, когда один именованный запрос (в основном запрос выбора) дает неоднозначные результаты при многократном вызове. Хит к этому запросу выбора не находится в цикле, тогда как это от внешнего интерфейса. Таким образом, когда я выполняю одну и ту же операцию несколько раз из внешнего интерфейса, иногда запрос выбирает правильные данные из БД, но иногда нет.

Пример: (пример кода)

Query query = session.getNamedQuery("select debitid from ABCMstrEntity where entitynum=: entitynum and isopen=:Y");

query.set(........);

..
List<Object[]> list = (List<Object[]>)query.list;

В первых 4 попытках я получил правильные данные в объекте списка. В моей 5-й попытке я получил пустой список, хотя в представленных входных данных присутствовали данные в БД. Когда я проверил это с помощью журналов запросов БД в конце БД, я обнаружил, что для 5-й попытки не было попадания в конец БД. Похоже, что-то здесь пошло не так.

Я также проверил настройки, связанные с кэшем, в спящем режиме в моем проекте, но мы не кэшируем результаты запросов ни в одной из областей кэша. Также не было исключений в логах приложений.

Пожалуйста, кто-нибудь поможет мне в этом вопросе, проанализировав и исправив его.

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