【问题标题】:In which form the org.hibernate.Query returns the result upon calling the list method?org.hibernate.Query 在调用 list 方法时以哪种形式返回结果?
【发布时间】:2011-03-24 10:35:25
【问题描述】:
我的 Java 代码是,
Query q=session.createSQLQuery(" { call procedureSample(?) }");
List list=q.list();
过程procedureSample返回三个值,如(int,string,int)。
如何获得结果?
我是否需要创建 bean?如果是这样,我如何命名 bean 中的字段,因为我的过程中的 int 结果是 count 之类的函数?
如何从list 实例列表中检索结果?
【问题讨论】:
标签:
java
hibernate
stored-procedures
【解决方案1】:
你会得到一个List<Object[]>,即一个行列表,每行都表示为一个对象数组。
如何访问过程结果取决于结果是作为一行 3 列返回(在这种情况下,您将访问第 3 个元素作为list.get(0)[2])还是返回为 3 行和一列(访问第 3 个元素然后将是list.get(2)[0])。
编辑:请注意,这假设您拥有 Java 5+ 并将 list 转换为 List<Object[]>。
【解决方案2】:
您的列表将包含 3 个项目。您可以遍历列表并获取值。
例如。
Query q=session.createSQLQuery(" { call procedureSample(?) }");
List list=q.list();
Iterator iter=list.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
我猜在这种情况下不需要创建 bean。