MySQL仅显示一些由Hibernate插入的数据

时间:2019-05-30 17:43:39

标签: java mysql hibernate mysql-5.7

我有一个Java应用程序,可通过Hibernate将非常大的文本文件中的数据加载到MySQL中。到目前为止,该应用程序似乎可以正常运行-已加载数据。

然后,我想在应用程序插入数据时监视其进度,因此我编写了一个小的命令行实用程序,基本上可以查询select count(*) from my_table;

第一次运行此查询(从CLI或MySQL Workbench)时,我得到了正确的记录数,符合预期。此查询的所有后续执行返回完全相同的数字!即使数据加载应用程序仍在运行!

如果我停止并启动MySQL进程,则查询记录数将显示正确编号,因为数据加载应用程序会报告该编号。

我以前从未见过这样的东西。看来这里发生了一些奇怪的MySQL缓存问题,我担心这可能会对其他可能要访问此数据库的非Hibernate应用程序造成问题。

有人知道如何调整MySQL(或可能是Hibernate),以便MySQL 始终显示正在添加到数据库中的内容吗?

技术细节:

  • MySQL:5.7.26,在Docker容器中,使用InnoDB存储
  • 休眠版本:5.4.2.Final
  • 春季版本:5.1.7.RELEASE

1 个答案:

答案 0 :(得分:0)

调用 FLUSH TABLES 似乎可以解决这个问题,因为在我刷新表之后,我可以看到应用程序添加了多少记录。