0

我是 Hibernate 的新手
这里我的问题是我知道如何使用 hibernate 调用 mssql 的存储过程,所以在这里我使用了本机查询,我称之为

@NamedNativeQueries({
@NamedNativeQuery(
name = "callProc",
query = "EXEC SimpleProc :var,:var1,:var2,
resultClass = resultbean.class
)})

在这里,我有一个名为 let it be MultiResultProc like

Create Procedure MultiResultProc
.....
begin
select * from resulttable1;
select * from resulttable2;
select * from resulttable3;
end

那么,当我在某些地方搜索时,我发现 Hibernate 将无法处理 Sybase 和 MSSQL db 的多个结果集时,如何区分这些多个结果类。但我需要那种类型的工作……我的项目有那种类型的多个程序,我们不能再设计了。
**所以请帮助我**

4

2 回答 2

0

在 Hibernate 中执行存储过程时应该注意什么?

  • 如果您的存储过程中有单个Insert, UpdateorDelete操作,那么您必须beginTransactin()这样commit()做才能生效。
  • Hibernate 只会选择存储过程的第一个结果。例如:如果您编写两个 select 语句,那么第一个结果将在 bean 和没有 bean 的情况下映射为休眠,它只会将第一个结果作为对象列表返回。

答案是否定的,你不能在休眠中获得所有三个表记录。

于 2014-10-30T18:18:28.543 回答
0

我认为在休眠中使用cursors时需要使用。stored procedure这是你应该做的。

  • 打开光标select * from table1
  • select * from table2加入现有游标。
  • 同样从表 n 中选择并与现有结果集游标连接。
  • 将返回的游标从休眠映射到适当的类,该类将包含从所有表返回的所有字段。
  • 根据您的需要从课堂上溢出结果。

这将节省大量的时间和劳力。有关精确示例,请访问链接。

于 2014-10-31T05:24:47.510 回答