休眠:多个结果集

时间:2011-01-28 18:22:21

标签: java hibernate jdbc multiple-resultsets

从我在Hibernate文档/在线中读到的内容来看,听起来Hibernate没有处理多个结果集的能力。我希望在依赖Hibernate的应用程序中进行MySQL DB调用,这将返回多个结果集。

您使用哪种解决方案与Hibernate“玩得很好”,请记住,这可能是唯一一个会返回多个结果集的调用?

谢谢!

3 个答案:

答案 0 :(得分:5)

AFAIK,你不能用hibernate处理多个结果集。但我认为你不需要它 - 多个结果集很少能映射到像List<FooEntity>这样的结果。您可以将纯JDBC用于返回多个结果集并手动处理它们的查询。

答案 1 :(得分:0)

我相信你已经看过这个@Ryan了,但为了别人的缘故(比如我):

  

对于Sybase或MS SQL服务器,以下规则适用:

     

该过程必须返回结果集。请注意,因为   这些服务器可以返回多个结果集和更新计数,Hibernate   将迭代结果并获取结果的第一个结果   设置为其返回值。其他一切都将被丢弃。

来自here

答案 2 :(得分:0)

如果结果集来自存储过程,则可以使用javax.persistence.StoredProcedureQuery类来获取结果集。确保所有结果集都由相同顺序的完全相同的列组成。休眠中的错误导致它期望所有结果集与第一个结果集具有相同的形式。