Мы сконфигурируем фасоль Session Factory в XML. Имя сеанса по умолчанию считывается из файла свойств, который находится в папке ресурса кода. Для новой цели мне нужно изменить свойство схемы по умолчанию на что-то еще во время выполнения. Я не могу понять, как это сделать.Как изменить настройку схемы SessionFactory для Hibernate во время выполнения?
Сеанс завод создан в проводке XML следующим образом:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.default_schema">${oracle.default_schema}</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<prop key="hibernate.generate_statistics">false</prop>
... other properties ...
</props>
</property>
... lots of mapping files and annotated classes ...
Я думал, что я мог бы вытащить сессионный завод из контекста Spring, а может быть обеспечивают класс Properties, чтобы (я надеялся) переопределить сеанс по умолчанию собственности и ничего больше, а затем продолжать свой путь счастливо.
К сожалению, когда я пытаюсь получить фабрику фабрики сессий из контекста, она имеет тип SessionFactoryImpl
, а не AnnotationSessionFactoryBean
. Это значит, что метод setHibernateProperties()
недоступен для меня.
Я не уверен, могу ли я позвонить по телефону ALTER SESSION
. Поскольку фабрика сеансов получена нашими классами DAO в библиотеке, у меня нет простого способа обернуть фабрику сеансов необходимым кодом.
Любые идеи?