2016-11-13 8 views
0

Я использую mysql-workbench, чтобы запросить мои таблицы базы данных. Также я использую приложение Java (с mysql-connector-java), чтобы внести изменения в мою базу данных.mysql-workbench не видит изменения базы данных, сделанные другими клиентами, если перезапуск соединения

Каждый раз, когда приложение java изменяет базу данных, я не могу увидеть изменения с помощью mysql-workbench. Запрос не возвращает результатов.

Только после перезапуска соединения MySQL и повторного запуска запроса я могу видеть изменения.

Я использую mysql-workbench version 6.3.8, mysql Ver 14.14 Distrib 5.7.16, mysql-connector-java 5.1.38 и моей ОС Ubuntu 16.04 LTS.

Из приложения Java я использую этот код, чтобы изменить состояние базы данных:

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

Это известная проблема?

ответ

1

У вас, вероятно, нет автоматического фиксации, поэтому изменения не отображаются никому другому клиенту, пока вы явно не назовете commit. Вы можете проверить это также с помощью командной строки mysql client, и он даст вам тот же результат. Аналогичный вопрос был задан несколько дней назад: Mysql Workbench is not reading records inserted through JDBC

+0

Вы направили меня на правильный путь. Я использую hibernate, и я совершаю транзакцию. Однако я не очистил сеанс. Вставка 'session.flush()' перед 'transaction.commit()' исправляет мою проблему. Теперь я могу сразу увидеть результаты запроса в mysql-workbench – Alex

+0

Кажется, что одного только commit недостаточно, чтобы контекст персистентности был синхронизирован с базой данных. Мне нужно явно вызвать флеш, чтобы достичь этого ... – Alex

 Смежные вопросы

  • Нет связанных вопросов^_^