Как сопоставить отношения многих со многими CritteriaBuilder - PullRequest
0 голосов
/ 10 июля 2019

Предположим, у вас есть стол ученика с отношением manyToMany с таблицей курсов.

У меня есть форма, в которой пользователь может выбрать курсы, и программы распечатывают студентов, которые находятся на этих курсах.

Это research.xhtml:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:p="http://primefaces.org/ui"
     xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:h="http://xmlns.jcp.org/jsf/html">

     <p:dataTable id="tableSearch" var="student" value="#{searchBean.searchStudents}" rows="10"
                     paginator="true"
                     paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                     rowsPerPageTemplate="5,10,15">


    <p:column headerText="Course">
              <p:repeat value="#{student.coursesList}" var="item">
                    <h:outputText value="#{item.nameCourse}" />
               </p:repeat>
            </p:column>
    ...

Стол Ученик имеет отношения ManytoMany с курсами стола (рьяная нагрузка).

если я это сделаю:

<h:outputText value="#{item}" />

Выводит правильный номер объекта, но вывод неправильный

(I read model.student@20)

Когда я делаю:

Я получаю:

lue="#{item.nameCourses}": Property 'nameCourses' not found on type org.hibernate.collection.internal.PersistentSet

Но предмет типа Курс. Я проверяю, как получить установленное значение, и есть в курсе getNameCourses () и setNameCourses();

...