【问题标题】: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)。

  1. 如何获得结果?

  2. 我是否需要创建 bean?如果是这样,我如何命名 bean 中的字段,因为我的过程中的 int 结果是 count 之类的函数?

  3. 如何从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。

      【讨论】:

        猜你喜欢
        • 2023-04-04
        • 1970-01-01
        • 2021-01-08
        • 1970-01-01
        • 2016-03-23
        • 2015-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多