Объединение двух таблиц данных на основе общности 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, так что, возможно, кто-то может мне помочь с этим
1 ответ
Делайте это на стороне Java (модель), а не на стороне XHTML (представление). Вы должны на стороне Java подготовить именно ту модель, которую ожидает представление. Представление должно быть настолько тупым, насколько это возможно, и просто представить модель, которой оно было присвоено.