Настраиваем хранилище объектов

Хранилище объектов - это сервис позволяющий сохранять и востанавливать состояние доменных объектов. На текущий момент времени реализовано хранилище которое использует hibernate в качестве механизма для сохранения и востановления состояния объектов.

Примечание. Напрямую хранилище объектов обычно не используется, но с ним плотно работают источники объектов.

В качестве сервера БД будем использовать H2 Database Engine Хотя в место H2 теоритически можно использовать любую БД из списка. WEDA Framework был проверен в работе с базами данных: Oracle 8.1.7 и PostrgeSQL 8.1

Для того чтобы сконфигурировать хранилище необходимо

  • создать файл hibernate.properties
  • создать точку конфигурации org.weda.hibernate.HibernateProperties в конфигурационном файле микроядра HiveMind hivemodule.xml
  • создать точку конфигурации org.weda.hibernate.HibernateConfig

Создаем hibernate.properties

Для создания файла 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

Создаем точку конфигурации org.weda.hibernate.HibernateProperties

Прежде чем создать точку конфигурации создадим конфигурационный файл 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, сделанный в предыдущем разделе.

Создаем точку конфигурации org.weda.hibernate.HibernateConfig

Целью этой конфигурации является перечисление всех классов доменых объектов

В нашем случае конфигурация будет выглядеть следующим образом


    <contribution configuration-id="org.weda.hibernate.HibernateConfig">
        <class>budget.domain.MoneyOperation</class>
        <class>budget.domain.OperationItem</class>
    </contribution>