Использование JDBCTemplate с Hibernate SessionFactory? - PullRequest
1 голос
/ 26 августа 2009

У нас есть приложение Spring / Hibernate, и мы хотели бы добавить небольшое количество JDBC по причинам, связанным с производительностью и временем разработки. Я могу сделать этот подкласс dao HibernateDaoSupport и использовать соединение сеанса для выполнения моего JDBC, но я бы лучше использовал JdbcTemplate. Однако JdbcTemplate инициализируется с использованием java.sql.Datasource. Как я могу использовать свой существующий Hibernate SessionFactory для его инициализации?

Ответы [ 3 ]

4 голосов
/ 26 августа 2009

Не требуется ли предоставлять источник данных для реализации SessionFactory? Почему бы вам не подключить это к шаблону JDBC?

Какую реализацию SessionFactory вы используете? Если вы используете реализации Spring, см. AbstractSessionFactoryBean.html # getDataSource ()

2 голосов
/ 15 марта 2010

Вы всегда можете использовать метод doWork сеанса гибернации - это дает вам соединение java.sql.Connection. Вы можете использовать это соединение для создания конструкции SingleConnectionDataSource (примечание: второй аргумент всегда должен быть истинным, поскольку вы не хотите закрывать основное соединение) и передать этот источник данных в JDBCTemplate ... 1005 *

0 голосов
/ 31 августа 2009

"извлечение источника данных из нашего Конфигурация гибернации выглядит как много работы для того что мне нужно "

Я не понимаю, почему это заняло бы столько работы. Это просто вопрос создания, вырезания и копирования нескольких тегов и свойств.

Например:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
      <property name="dataSource">
          <ref bean="dataSource"/>    
      </property>
...
</bean>

"Какая реализация SessionFactory ты используешь? Если вы используете Весенние реализации см. AbstractSessionFactoryBean.html # GetDataSource () "

Очевидно, что getDataSource () доступен только для Spring 2.5. Вот ссылка: Нажмите здесь

Spring 2.0 не имеет getDataSource (). Вот ссылка: Нажмите здесь

Наша фабрика сессий была создана с использованием AnnotationSessionFactoryBean инициализируется со свойствами гибернации ... hibernateSessionFactory является SessionFactory. Как бы я получить ссылка на SessionFactoryBean?

Мне интересно, почему вы использовали SessionFactory вместо LocalSessionFactoryBean, который является подклассом AnnotationSessionFactoryBean?

Разве строка bean id = "hibernateSessionFactory" уже ссылается на SessionFactoryBean?

...