Вопрос

мне просто любопытно кое о чем.Я использую hsql в myproject (встроенный, конечно).В какой-то момент я почувствовал необходимость визуализировать, что генерирует hibernate.Я взял бесплатную копию dbvisualizer.вот файл hsqljdbc.properties

jdbc.url=jdbc:hsqldb:файл:mydb;создать=true
перевести в спящий режим hbm2ddl.auto=создать

я скачал hsql 1.8.0_10.я выполнил всю необходимую процедуру. я мог подключиться и просмотреть таблицы, но после этого изменения, внесенные в таблицу, похоже, не желают отображаться.затем я попытался удалить базу данных, сгенерировав новую, но все же.У тебя есть какая-нибудь идея по этому поводу?

Обычно я занимаюсь дерби, но недавно понял, что в управлении взаимоотношениями нет такой точности.На данный момент я использую mysql, который не подходит для разработки, поэтому я хочу знать, забыл ли я что-то сделать или это просто предназначено для такого поведения.Спасибо, что прочитали это

Это было полезно?

Решение

Использование HSQLDB для разработки и тестирования подробно обсуждается в новом руководстве.

http://hsqldb.org/doc/2.0/guide/deployment-chapt.html#dec_app_dev_testing

HSQLDB по умолчанию использует механизм задержки записи, и изменения сбрасываются на диск через 10 секунд в версии 1.8.x или 0,5 секунды в версии 2.0 и более поздних версиях.

Вы можете принудительно завершить работу базы данных и записать все изменения при закрытии последнего соединения с помощью этого URL:

jdbc.url=jdbc:hsqldb:file:mydb;shutdown=true

С помощью HSQLDB 2.x вы можете использовать свойство write_delay, чтобы заставить каждую фиксацию немедленно записываться на диск:

jdbc.url=jdbc:hsqldb:file:mydb;hsqldb.write_delay=false

Версии 2.2.9 и более поздние сохраняют последние изменения при закрытии последнего соединения, поэтому может не потребоваться использовать hsqldb.write_delay=false для тестов, которые закрывают соединения.

С HSQLDB 1.8 вам нужно запустить SQL-команду в начале, чтобы сделать это:

УСТАНОВИТЕ ЗНАЧЕНИЕ WRITE_DELAY FALSE

Другие советы

По умолчанию HSQLDB хранит содержимое таблицы в памяти до тех пор, пока база данных не будет закрыта: http://www.hsqldb.org/doc/guide/ch05.html#N10DD6

В зависимости от ваших потребностей (например, при работе в среде разработки) этого может быть достаточно.Однако для производства я бы предпочел использовать СУБД, которая записывает каждое изменение на диск в нескольких местах (что для меня означает Oracle, хотя MySQL, вероятно, работает так же хорошо).

Почему бы вам просто не установить show_sql присвоите значение true, если вы хотите посмотреть, что делает hibernate?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top