Я использую 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();
Это известная проблема?
Вы направили меня на правильный путь. Я использую hibernate, и я совершаю транзакцию. Однако я не очистил сеанс. Вставка 'session.flush()' перед 'transaction.commit()' исправляет мою проблему. Теперь я могу сразу увидеть результаты запроса в mysql-workbench – Alex
Кажется, что одного только commit недостаточно, чтобы контекст персистентности был синхронизирован с базой данных. Мне нужно явно вызвать флеш, чтобы достичь этого ... – Alex