我无法使用会话工厂从Java Hibernate调用存储过程
我已经编写了一个包含5个参数的sql过程,并返回了一个在MS SQL Studio中运行良好的结果集
EXEC SlaGrid @appID=245,@fromYear=2012,@toYear=2013,@fromMon=1,@toMon=12 --- sql
EXEC SlaGrid @applID=:applID,@fromYear=:fromYear,@toYear=:toYear,@fromMon=:fromMon,@toMon=:toMon --hibernate
我正在设置上述查询的参数
String queryString = "EXEC SlaGrid @applID=:applID,@fromYear=:fromYear,@toYear=:toYear,@fromMon=:fromMon,@toMon=:toMon"
Query query = sessionFactory.getCurrentSession().createSQLQuery(queryString);
//set query parameters here
query.list() --- giving sql grammer exception
我只是通过以下代码解决了它…只需在CSV中传递参数。感谢帮助人员。
String queryString = "SlaGrid 245,2012,2013,1,12"
Query query = sessionFactory.getCurrentSession().createSQLQuery(queryString);
query.list();
完美的作品:)
问题内容: 我对执行速度非常慢的存储过程有些困惑。该存储过程基本上包含一个使用传入参数(in_id)的查询,并将其放在游标中,如下所示: 当我获得带有预定义值的SQL查询的执行计划时,使用索引可以得到良好的查询结果。但是,当我从应用程序中调用该过程时,我看到没有索引在使用中,并且该表得到了完整扫描,从而降低了性能。 如果删除WHERE子句的第一部分“(in_id为null)”,则应用程序的性能将再
问题内容: 我刚刚有了Hibernate Session和Connection之间的关系。但是现在,我又遇到一个问题:hibernate会话工厂如何管理会话?在以下代码段中:DAO类的save()方法: 当我们调用时,它将创建一个新会话(通过ThreadLocal附加到当前线程),该会话也附加到JDBC连接。但是,正如您所看到的,我们不需要关闭该会话(会话。 close()),都没有连接。那么,H
我正在尝试在eclipse中设置Hibernate Tools。问题是它找不到任何映射文件。 我创建了一个控制台配置,指向我的environment.properties文件和hibernate.cfg.xml.问题是hibernate.cfg.xml.中没有映射 看起来它在myproject持久化中使用了spring bean sessionFactory。xml(如下)来查找所需的映射文件。我
我想使用Spring Data JPA和Hibernate执行一个简单的H2数据库存储过程。 存储过程类: 存储过程别名: 在H2控制台中执行,工作正常: Spring数据JPA存储库类: 储存库测试: 产生以下输出: 具有以下存储过程的MS SQL Server数据库的相同代码按预期工作: 似乎在org . spring framework . data . JPA . repository .
问题内容: 我正在说一个例外: java.lang.IllegalArgumentException:需要’sessionFactory’或’hibernateTemplate’ 尝试在HibernateDaoSupport类上使用注释时。该错误消息很简单,为了创建存储库,它需要一个sessionFactory。但是,我在XML中定义了一个会话工厂: 因此,我不确定在创建注释驱动的bean时如何为
我正在将Hibernate拦截器与(Hibernate 4.x)一起使用。我想对会话的save方法执行一些操作。所以我扩展了EmptyInterceptor。 它有以下几种方法: 问题:在postFlush()我想执行保存操作。所以我的控制卡在循环中。因为每当session.save()被调用我的调用时,空拦截器的onSave()和postFlush()方法被调用来拦截SAVE操作。 为了消除这个