Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
存储过程不';当从Java应用程序调用时,不能保留已写入的表_Java_Sql_Sql Server_Hibernate_Stored Procedures - Fatal编程技术网

存储过程不';当从Java应用程序调用时,不能保留已写入的表

存储过程不';当从Java应用程序调用时,不能保留已写入的表,java,sql,sql-server,hibernate,stored-procedures,Java,Sql,Sql Server,Hibernate,Stored Procedures,我正在为我遇到的一个小问题寻找答案。我想有一个理论概念我不知道。请帮助: 我有一个从各种表和视图中收集数据的存储过程。”sp_getData()' 在不同的点上,它通过插入或更新将中间结果写入“table_a”。 在存储过程的末尾, 它通过简单的选择输出“tbl_A”中收集的数据 select field1, field2, ..etc... from tbl_A where <someCondition is met> 我使用的是Hibernate版本:3.1.3 merge()

我正在为我遇到的一个小问题寻找答案。我想有一个理论概念我不知道。请帮助:

我有一个从各种表和视图中收集数据的存储过程。”sp_getData()'

在不同的点上,它通过插入或更新将中间结果写入“table_a”。 在存储过程的末尾, 它通过简单的选择输出“tbl_A”中收集的数据

select field1, field2, ..etc...
from tbl_A
where <someCondition is met>
我使用的是Hibernate版本:3.1.3

merge()和merge2()是处理返回数据的方法。不包含与数据库相关的/hibernate代码

有人能帮忙吗??? 谢谢。

尝试切换 调用sp_getdata(?) 到 exec sp_getdata()


当您通过查询分析器运行自动提交时,是否会启用自动提交,但当您通过Java程序运行自动提交时,是否会禁用自动提交?猜猜看。大卫,非常感谢你的提示。就这样。显然,一个项目中有两个hibernate.cfg.xml,而实际上只有一个处于活动状态。我不熟悉项目结构,但一旦我找到了正确的配置文件,我就实现了自动提交,它就工作了。谢谢
  private void execute(Session session, int port) throws MyCustomSystemException{
     String queryString = "{ call sp_getData(?) }";
    Query q;
    List resultList;
    try {
        q = session.createSQLQuery(queryString);
        q.setInteger(0, port);
        resultList = q.list();
    } 
    catch (HibernateException hex) {
         throw new MyCustomSystemException(
                "STYSTEM ERROR:  Can't execute    
                      sp_getData(?) procedure.",
                hex);
    }

    if (isSummaryReport())
        merge(resultList);
            System.out.println("==============") ;
    if (isFullReport())
        merge2(resultList);
   }