на стороне java все работает нормально, но когда я смотрю на специальную таблицу оракулов V $ SESSION и в моей таблице журналов, в которой записываются все операции входа или выхода из системы, это катастрофа ... каждый запрос выполняет вход в системувыход из системы.Итак, вот мой вопрос: есть ли способ настроить Spring на уникальное подключение к базе данных или что-то не так в способе подключения?Вот моя конфигурация компонента источника данных:
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>oracle.jdbc.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@nanssunorad:1523:nanorad3</value>
</property>
<property name="username">
<value>foo</value>
</property>
<property name="password">
<value>bar</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>hibernateESign.cfg.xml</value>
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</value>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<bean id="IXalVaParametresDAO" class="fr.asterion.archivage.hibernate.XalVaParametresDAO">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
В моем приложении, чтобы получить DAO для параметров базы данных, я делаю
IXalVaParametresDAO parametreDAO = (IXalVaParametresDAO) ConfigApplication
.getApplicationContext(this.log).getBean("IXalVaParametresDAO");
И наконец, в моем классе DAO,Я делаю что-то вроде этого:
public class XalVaParametresDAO implements IXalVaParametresDAO
{
private HibernateTemplate hibernateTemplate;
public void setSessionFactory(SessionFactory sessionFactory)
{
this.hibernateTemplate = new HibernateTemplate(sessionFactory);
}
public List<XalVaParametres> findAll()
{
log.debug("finding all XalVaParametres instances");
try
{
String queryString = "from XalVaParametres";
List lst = this.hibernateTemplate.find(queryString);
В моем приложении каждый раз, когда я вызываю метод "find", оно выполняет вход / выход из БД.Я думаю, проблема та же на другой БД.Я правильно все делаю?Я думаю, нет.Я бы хотел, чтобы HibernateTemplate создавал и оставлял сеанс открытым раз и навсегда.Это возможно ?Спасибо за ваши идеи
Manux