我有一个动态jpql如下:
public Collection getOrderReportByUserName(String userName, Integer scripID, String orderStatus, String orderType)
{
String strQuery = null;
Collection<TradeStock> ts = em.createQuery("Select t from TradeStock t where t.userName.userName = :userName").setParameter("userName",userName).getResultList();
if(ts.isEmpty())
{
strQuery = "Select o from OrderStock o where o.userName.userName = :userName ";
}
else
{
strQuery = "Select o,t from OrderStock o,TradeStock t where o.userName.userName = :userName and t.userName.userName = :userName";
}
Collection c = em.createQuery(strQuery).setParameter("userName",userName).getResultList();
return c;
}
豆代码:
public collection getOrderReport()
{
collOrder= getOrderReportByUserName(uname,scripID,orderStatus,orderType);
}
xhtml:
<p:dataTable id="dt" var="order" widgetVar="scripTab"
emptyMessage="No scrip found with given criteria" binding="#{stockOrderBean.dt}"
value="#{stockOrderBean. collOrder}"
>
<p:column>
<f:facet name="header">
Scrip Symbol
</f:facet>
<h:outputText value="#{order.get(0)}"/> ?? how to assign it?
</p:column>......
在这里,当我调试它时,我发现“c”包含返回的集合,但现在如何将它分配给数据表?返回的集合包含 2 个表的对象——“tradeStock”和“orderStock”——那么如何在 primefaces 数据表中使用它?
编辑: 我想显示来自两个不同类的字段 - OrderStock 中的一些字段和 TradeStock 中的一些字段,它们由名为“OrderID”的公共字段连接。这可能吗?如果没有,那还有什么替代解决方案?