【问题标题】:HibernateDaoSupport and native SQLHibernateDaoSupport 和原生 SQL
【发布时间】:2011-01-18 16:35:41
【问题描述】:

我正在使用 spring 和 hibernate 编写一个 DAO

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) 查询相同的事务中执行。

谢谢

【问题讨论】:

  • spring 和 hibernate 的版本?
  • Spring 2.5.4 和 Hibernate 3.3.2.GA

标签: java hibernate spring


【解决方案1】:

有点题外话,但可能还是有帮助的。 Spring 的作者不建议使用 HibernateDaoSupport 来实现您的 DAO。检查this blog posting

【讨论】:

    【解决方案2】:

    您可以配置 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      • 1970-01-01
      • 2015-05-30
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多