存储过程不';当从Java应用程序调用时,不能保留已写入的表
我正在为我遇到的一个小问题寻找答案。我想有一个理论概念我不知道。请帮助: 我有一个从各种表和视图中收集数据的存储过程。”sp_getData()' 在不同的点上,它通过插入或更新将中间结果写入“table_a”。 在存储过程的末尾, 它通过简单的选择输出“tbl_A”中收集的数据存储过程不';当从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()
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);
}