Консоль H2 - просмотр базы данных через браузер показывает старые данные - PullRequest
1 голос
/ 16 февраля 2011

Я использую базу данных H2 для простого веб-приложения.

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

Например:

Я добавляю новую запись в таблицу, используя мое веб-приложение, и когда я делаю select * из таблицы, в которую я добавил запись, она не показывает новую запись.

У меня есть следующие настройки для входа в систему при подключении к консоли H2 через браузер:

Сохраненные настройки: общий H2 (встроенный)

Название параметра: Generic H2 (Embedded)

Класс водителя: org.h2.Driver

JDBC URL: jdbc: h2: файл: / Develops / Databases / snowy_db; FILE_LOCK = NO

Есть идеи о том, как мне получить доступ к самым последним данным из базы данных с помощью консольного браузера H2?

Заранее спасибо.

Редактировать

Просто добавлю: я вижу новую запись в своем веб-приложении, но не при использовании браузера консоли H2.

1 Ответ

2 голосов
/ 16 февраля 2011

Полагаю, ваша проблема в FILE_LOCK=NO варианте. документация гласит, что:

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

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

Если вам это неудобно, просто запустите H2 как отдельный сервер отдельно или внутри приложения Seam. Затем измените URL JDBC так, чтобы он соединялся через localhost и TCP-соединение.

...