从我在Hibernate文档中读到的内容来看,听起来Hibernate不具备处理多个结果集的能力。 我想在一个依赖Hibernate的应用程序中调用MySQL DB,并返回多个结果集。
你使用了哪些与Hibernate "玩得好 "的解决方案,并牢记这很可能是唯一会返回多个结果集的调用?
谢谢
AFAIK,你不能用hibernate处理多个结果集。但我认为你不需要它--多个结果集很少能映射到像以下这样的结果 List<FooEntity>
. 对于返回多个结果集的查询,你可以使用普通的JDBC,并手动处理它们。
我相信你已经看到了这个@Ryan,但是为了其他人(比如我)。
对于Sybase或MS SQL server来说,以下规则适用于:
存储过程必须返回一个结果集。请注意,由于这些服务器可以返回多个结果集和更新次数,Hibernate将对结果进行迭代,并将第一个是结果集的结果作为其返回值。其他所有结果都将被丢弃。
从 此处.
如果结果集来自存储过程,可以使用 javax.persistence.StoredProcedureQuery
类。确保所有的结果集都是由相同顺序的列组成。hibernate中的一个bug导致它期望所有的结果集与第一个结果集的形式相同。