Хранилище объектов - это сервис позволяющий сохранять и востанавливать состояние доменных объектов. На текущий момент времени реализовано хранилище которое использует hibernate в качестве механизма для сохранения и востановления состояния объектов.
Примечание. Напрямую хранилище объектов обычно не используется, но с ним плотно работают источники объектов.
В качестве сервера БД будем использовать H2 Database Engine Хотя в место H2 теоритически можно использовать любую БД из списка. WEDA Framework был проверен в работе с базами данных: Oracle 8.1.7 и PostrgeSQL 8.1
Для того чтобы сконфигурировать хранилище необходимо
Для создания файла hibernate.properties
сделайте следующее.
Выделите ветку Source Packages
и нажмите Ctrl+N
или в меню File
выберите пункт меню New File
. Далее в качестве категории
выбирете Others
а в качестве типа файла Properties File
.
Нажимаем Next
и в следующем окне в поле File name
набираем hibernate
и нажимаем Finish
В результате должны получить следующее:
Наполните файл следующим содержимым:
hibernate.dialect=org.hibernate.dialect.HSQLDialect hibernate.connection.username=sa hibernate.connection.password= hibernate.connection.driver_class=org.h2.Driver hibernate.connection.url=jdbc:h2:budget hibernate.show_sql=false hibernate.hbm2ddl.auto=create
Примечание. После первого успешного запуска web-приложения
(т.е. например, после выполнения действия Обновить
)
необходимо остановить WEB-сервер
закомментировать строку
hibernate.hbm2ddl.auto=create
"Почистить" проект
И еще раз запустить проект (F6)
Если этого всего не сделать то каждый раз при запуске web-приложения таблицы хранящие состояния доменных объектов будут пересоздаваться.
При работе с серверами БД Oracle и PostgreSQL таких проблем нет
так как их диалекты поддерживают опцию update
для параметра hibernate.hbm2ddl.auto
Прежде чем создать точку конфигурации создадим конфигурационный файл
hivemodule.xml микроядра HiveMind.
Для этого в ветке Web Pages
выделим узел WEB-INF
и нажимаем Ctrl-N
. А дальше по картинкам
Наполните его следующим содержимым:
<?xml version="1.0" encoding="UTF-8"?> <module id="budget" version="1.0.0"> <contribution configuration-id="org.weda.hibernate.HibernateProperties"> <location type="resource" path="/hibernate.properties"/> </contribution> </module>
Как видно в данной конфигурации идет ссылка на файл hibernate.properties
,
сделанный в предыдущем разделе.
Целью этой конфигурации является перечисление всех классов доменых объектов
В нашем случае конфигурация будет выглядеть следующим образом
<contribution configuration-id="org.weda.hibernate.HibernateConfig"> <class>budget.domain.MoneyOperation</class> <class>budget.domain.OperationItem</class> </contribution>