日期:2014-05-18  浏览次数:20896 次

Hibernate执行存储过程报错:找不到存储过程 'dbo.DbInfo'。
sqlserver是这样调用的:
------------------------
go 
exec dbo.DbInfo  8000,30000,''
------------------------
可以查询出数据集

java中action里的代码如下:

String procName="{Call dbo.DbInfo(?,?,?) }"; 
SQLQuery sqlquery = sess.createSQLQuery(procName);
sqlquery.setInteger(0, 8000);
sqlquery.setInteger(1, 30000);
sqlquery.setString(2, "");
List<?> list = null;
list = sqlquery.list();

我用hibernate里的Session查询了一个sql语句是没问题的。
-----------------各种搜都没有结果      ==============
存储 Hibernate java

------解决方案--------------------
改为String procName="{Call DbInfo(?,?,?)}";看看
------解决方案--------------------
你那肯定不行了,createSQLQuery是执行SQL语句的。

应该这样:

CallableStatement call = conn.prepareCall("{Call getLogPageData(?,?)}");

call.setString(1, tempSql);
call.setString(2, listsql);

ResultSet rst = call.executeQuery();
------解决方案--------------------
网上搜了个,你不用hiberante 你执行看看有没有这个存储过程 ?
public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=fish";
        String user = "bm";
        String pwd = "bm";
        Connection conn = null;
        CallableStatement proc = null;//执行sql存储过程的接口
        ResultSet rs = null;

//        调用存储过程p_1:从Cell表中取出数据
        try{