MySQL показывает только некоторые данные, которые вставляются Hibernate - PullRequest
0 голосов
/ 30 мая 2019

У меня есть приложение Java, которое загружает данные из очень большого текстового файла в MySQL через Hibernate.Пока что приложение работает нормально - данные загружаются.

Затем я хотел отслеживать ход выполнения приложения во время вставки данных, поэтому я написал небольшую утилиту командной строки, которая в основном запрашивает select count(*) from my_table;.

Первый раз, когда этот запросзапустить (из CLI или MySQL Workbench), я получаю правильное количество записей, как и ожидалось.Все последующие выполнения этого запроса возвращают одно и то же число! Даже если приложение для загрузки данных все еще работает!

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

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

Кто-нибудь знает, как настроить MySQL (или, возможно, Hibernate), чтобы MySQL всегда показывал, что добавляется в базу данных?

Технические подробности:

  • MySQL: 5.7.26, в контейнере Docker, с использованием хранилища InnoDB
  • Версия Hibernate: 5.4.2.Final
  • Версия Spring: 5.1.7.RELEASE
...