基于共性 JSF 组合两个数据表

Combining two dataTables based on commonalities JSF

我有以下数据库结构:一个项目有多个子项目和多个用户在特定子项目上预订了一些时间。我需要为每个项目显示子项目列表以及每个子项目的用户和预订的总时间。 像这样:

Project1
   Subproject1       User1   TimeBooked
                     User2   TimeBooked 

   Subproject2       User3   TimeBooked 
                     User2   TimeBooked

这是我目前拥有的:

<p:dataTable var="subproj"
             value="#{project_stats_user_chart.selectedProject.subprojects}"
             id="projectSubprojects">

    <p:column>
        <h:outputText value="#{subproj.type}" style="font-size: 1em;"></h:outputText>
    </p:column>

    <p:column>
        <p:dataTable var="user"
                     value="#{project_stats_user_chart.users}" 
                     id="SubprojectsUsers">

            <p:column>
                <h:outputText value="#{user.firstName}"
                              style="font-size: 1em;"></h:outputText>
                <h:outputText value="#{user.lastName}" style="font-size: 1em;">
                </h:outputText>
            </p:column>
        </p:dataTable>
    </p:column>
</p:dataTable>

我现在的问题是根据需要显示预订时间。 我有一个查询计算每个用户每个子项目的总和,但我需要以某种方式根据它们的共性迭代这两个表或合并这两个表,以便获得我想要的组合。我是 PrimeFaces 的新手,所以也许有人可以帮我解决这个问题

在 Java(模型)端执行,而不是在 XHTML(视图)端执行。您应该在 Java 端准确准备视图期望的模型。视图应尽可能保持愚蠢,只呈现给它的模型。