HibernateDaoSupport и собственный SQL - PullRequest
       12

HibernateDaoSupport и собственный SQL

2 голосов
/ 19 февраля 2010

Я пишу DAO, используя spring и hibernate

public class DaoImpl extends HibernateDaoSupport implements Dao {}

Для чтения или обновления данных я использую HQL getHibernateTemplate().bulkUpdate(...), но один из запросов слишком сложен для этого, и мне нужно использоватьродной SQL Query query = getSession().createSQLQuery(...)

Но при этом мое приложение зависает

DEBUG org.hibernate.jdbc.ConnectionManager  - opening JDBC connection

Я могу предотвратить это, установив поле DataSource maxActive неограниченным, но это не решение.Мой вопрос заключается в том, есть ли надежный способ использования нативного SQL с HibernateDaoSupport?Очень важно, что собственные запросы должны выполняться в той же транзакции, что и другие (HQL) запросы.

Спасибо

Ответы [ 2 ]

3 голосов
/ 19 февраля 2010

Вы можете настроить HibernateTemplate так, чтобы он не создавал новый сеанс:

ht.setAllowCreate(false);
ht.setAlwaysUseNewSession(false);

Javadoc: http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/orm/hibernate3/HibernateTemplate.html#getSession%28%29

0 голосов
/ 19 февраля 2010

Немного не по теме, но, тем не менее, полезно. Использование HibernateDaoSupport для реализации ваших DAO не рекомендуется авторами Spring. Проверьте это сообщение в блоге .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...