java - 如何访问 jpql 从托管 bean 中的 ejb 返回的集合

标签 java jakarta-ee jpa managed-bean

我有一个应用程序,我需要使用 sum() 和 Func(year,...) 函数触发 jpql 查询,这意味着只需要获取 2 个字段并将其存储到一个集合中,然后这个集合将用于返回到托管 bean。现在我的问题是我如何使用这个集合来检索每个值。下面是 session bean 和托管 bean 代码:

    public Collection getScripQtyYearWise(Integer scripID)
 {
    try
    {
     Collection coll=em.createQuery("select sum(t.tradeExecutedQuantity), FUNC('YEAR',t.tradeDateTime) from TradeStock t where t.scripID.scripID = :scripID group by FUNC('YEAR',t.tradeDateTime) ").setParameter("scripID", scripID).getResultList();
     return coll;
    }catch(Exception e){return null;}
 }

例如返回的数据:sum(qty) year 210 2011 198 2012 我需要提取 followinf 托管 bean 中返回的每条记录中的每个值:

  objejb=(StockCommodityEJBStateless) new InitialContext().lookup("StockCommodityTest");
 Collection coll=objejb.getScripQtyYearWise(scripID1); // how to use this collection?

最佳答案

collObject[]Collection,所以你可以这样解析它:

    for (Object o : coll) {
        Object[] res = (Object[]) o;
        Object sum = res[0];
        Object year = res[1];

    }

如果你想要一个 List 而不是 Object[] 你可以像这样改变你的选择:

Collection coll=em.createQuery("select new list(sum(t.tradeExecutedQuantity), FUNC('YEAR',t.tradeDateTime)) from TradeStock t where t.scripID.scripID = :scripID group by FUNC('YEAR',t.tradeDateTime) ").setParameter("scripID", scripID).getResultList();

阅读更多 here !

关于java - 如何访问 jpql 从托管 bean 中的 ejb 返回的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10912239/

相关文章:

java - 第一次持久化之前的 Hibernate 回调

java - 什么是NullPointerException,我该如何解决?

java - 当对象由仅映射的 mapred 作业映射时,是否可以将对象的实例与一个文件关联?

java - 野蝇(8.2.final): How to read a classpath resource?

java - 在 EC2 上运行 Java EE 应用程序

Java hashmap在数据库中的映射

java - PlayN 用触摸板 throw 物体

java - 为什么我无法获取jsp的思想路径?

java - CDI bean 中注入(inject)的 Conversation 接口(interface)是否需要 getter?

java - Spring 启动 PostgreSQL