【问题标题】:mysql-workbench does not see database changes made by other clients unless restarting connectionmysql-workbench 看不到其他客户端所做的数据库更改,除非重新启动连接
【发布时间】:2016-11-13 18:41:41
【问题描述】:

我使用 mysql-workbench 来查询我的数据库表。 我还使用 Java 应用程序(使用 mysql-connector-java)来更改我的数据库。

每次 java 应用程序修改数据库时,我都无法使用 mysql-workbench 看到更改。该查询不返回任何结果。

只有在我重新启动 MySQL 连接并再次运行查询后,我才能看到更改。

我使用mysql-workbench version 6.3.8mysql Ver 14.14 Distrib 5.7.16mysql-connector-java 5.1.38,我的操作系统是Ubuntu 16.04 LTS

在 Java 应用程序中,我使用此代码来修改数据库状态:

Transaction transaction = session.beginTransaction();
.....
session.save(myObject);
transaction.commit();

这是一个已知问题吗?

【问题讨论】:

    标签: mysql mysql-workbench


    【解决方案1】:

    您可能没有启用自动提交,因此在您明确调用提交之前,任何其他客户端都看不到更改。您也可以使用命令行 mysql 客户端对此进行测试,它会给您相同的结果。前几天有人问过类似的问题:Mysql Workbench is not reading records inserted through JDBC

    【讨论】:

    • 您已将我引向正确的道路。我使用休眠并提交我的事务。但是,我没有刷新我的会话。在transaction.commit() 之前插入session.flush() 可以解决我的问题。现在我可以立即在 mysql-workbench 中看到查询结果
    • 似乎仅提交不足以导致持久性上下文与数据库同步。我需要显式调用flush才能实现...
    猜你喜欢
    • 1970-01-01
    • 2014-11-30
    • 2021-11-15
    • 2021-05-27
    • 2019-08-05
    • 2021-09-13
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多