Показывать консультацию 2 различных подмостков в dataTable Primefaces

Я работаю в приложении с JSF, Primefaces, MySQL и настойчивость с MyBatis.
Я нуждаюсь в том, чтобы вернуть информацию о 2 подмостках BD (Вся информация об одной и весь или часть другой) и показывать их в том же самом p:dataTable.
Заметь: Для каждой таблицы уже функционируй показывать данные в вашем собственном dataTable.
Консультируясь я нашел, что я это могу делать с этикеткой “association” (MyBatis) манипулируя join в resulmap, как я это показываю ниже, но не нахожу, как перемещение этих данных dataTable primefaces в JSF.

Вопрос: что я должен добавлять к странице xhtml, где я имею p: dataTable или в класс pojo, и(или) в класс bean, чтобы отображать данные о 2 подмостках?.

Это - то, что у меня есть в BD:
- Студенты (у Него есть PRIMARY KEY (idEstudiante)

- Ты вносишь в списки (у Него есть PRIMARY KEY (idMatricula) FOREIGN KEY (idEstudiante)

- Такой он такой, как в DataTable я возвращаю данные о таблице, ты вносишь в списки (что-то сходное функционирует для таблицы Студенты и он должен будет быть с какими-то изменениями думаю я, для ассоциации 2 подмостков)

<p:dataTable value="#{matriculasbean.matricula}" var="aux"
paginator="true" paginatorPosition="top" editable="true"
style="margin-bottom:20px" scrollable="true" scrollWidth="100%"
rows="5" rowsPerPageTemplate="5,10,15">

<p:column headerText="Id Estudiante">
    <h:outputText value="#{aux.idEstudiante}" />
</p:column>
<p:column headerText="Grado">
    <h:outputText value="#{aux.grado}" />
</p:column>
<p:column headerText="Curso">
    <h:outputText value="#{aux.nombreCurso}" />
</p:column>

- Pojo для Реестров:

   public class Matriculas {
        private int idMatricula;
        private int idEstudiante;   
        private String grado;
        private String nombreCurso;
        private Date fechaMatricula;
        private Double costoMatricula;  

        public Matriculas() {               

        }

    // Getters y Setters

- Pojo для Студентов:

 public class Estudiantes {

        private int idEstudiante;
        private String nombreEstudiante;
        private String primerApellidoE;
        private String segundoApellidoE;    
        private String tipoDocumento;

    public Estudiantes() {

    }
    // Getters y Setters

- Класс java beans, откуда я называю mapper для консультации 2 подмостков:

@ManagedBean
@SessionScoped
public class Matriculasbean {

    private Matriculas matriculas;

  public Matriculasbean() {

        matriculas= new Matriculas();
    }

  public List<Matriculas> getMatriEstuNombre(){
    System.out.println("está en getMatriEstuNombre");
    List<Matriculas> lista = null;

    SqlSession session = new MyUtil().getSession();

    if (session != null) {              
        try { lista = session.selectList("Coleg.selectMatriculasestu");

    } finally {
        session.close();                }

    }else {
        System.out.println("ERROR");
        }
        return lista;       
    }   
}

Это - то, что у меня есть, согласно которому я исследовал, используя Mapper и resulmap с MyBatis в связи один в один в файле xml mapeo, чтобы делать join между 2 подмостками:

- Select для консультации:

  <select id="selectMatriculasestu" parameterType="int" 
    resultMap="ResulMatricula">
           select
                    M.idEstudiante as idEstudiante,
                    M.idMatricula as idMatricula,
                    M.grado as grado,
                    M.nombreCurso as nombreCurso,
                    M.fechaMatricula as fechaMatricula,
                    M.costoMatricula as costoMatricula,
                    E.nombreEstudiante as nombreEstudiante,
                    E.primerApellidoE as  primerApellidoE,
                    E.segundoApellidoE as segundoApellidoE
                    E.tipoDocumento as tipoDocumento 
    from Matriculas M left outer join Estudiantes E on M.idEstudiante = 
    E.idEstudiante where M.idEstudiante = #{idEstudiante}
    </select>

- Mapeo:

<resultMap  id="ResulMatricula" type="Matriculas">
   <id column="idEstudiante" property="idEstudiante" javaType="int"/> 
   <result column="idMatricula" property="idMatricula" javaType="int"/>
   <result column="grado" property="grado" javaType="string"/>
   <result column="nombreCurso" property="nombreCurso" javaType="string"/>
   <result column="fechaMatricula" property="fechaMatricula" javaType="date"/>
   <result column="costoMatricula" property="costoMatricula" javaType="double"/>

   <association property="Estudiantes" javaType="Estudiantes" resultMap="ResulEstudiantes" /> 
</resultMap> 

<resultMap  id="ResulEstudiantes" type="Estudiantes">           
   <id column="idEstudiante" property="idEstudiante" javaType="int"/>
     <result column="nombreEstudiante" property="nombreEstudiante" javaType="string"/>
     <result column="primerApellidoE" property="primerApellidoE" javaType="string"/>
     <result column="segundoApellidoE" property="segundoApellidoE" javaType="string"/>
     <result column="tipoDocumento" property="tipoDocumento" javaType="int"/>

    </resultMap>
1
задан 16.03.2019, 00:09
1 ответ

Пески:

Ощущается, что estГЎs работая с ORM, а следовательно deberГ-схвати быть способен просить объект у каждого entity, что represena снабженный ссылками класс или список объектов, которые это снабжают ссылками в Г©l. Немного как это

    Matriculas matricula = findMatricula('1') // asumiendo que tienes un método que 
    te devuelve una matríclula según su id.
    Estudiante estudiante = matricula.getEstudianteFK();

    // También es válido el caso contrario
    List<Matricula> list = estudiante.getMatriculas(); //esto debería devolver  la 
    lista de matrículas del estudiante

Потом в datatable podrГ-схвати считать что-то этим, aprobechando, у которого matrГ-cula есть id студента:

<p:dataTable value="#{matriculasbean.matricula}" var="aux"
paginator="true" paginatorPosition="top" editable="true"
style="margin-bottom:20px" scrollable="true" scrollWidth="100%"
rows="5" rowsPerPageTemplate="5,10,15">

<p:column headerText="Id Estudiante">
<h:outputText value="#{aux.idEstudiante}" />
</p:column>
<p:column headerText="Grado">
<h:outputText value="#{aux.grado}" />
</p:column>
<p:column headerText="Curso">
<h:outputText value="#{aux.nombreCurso}" />
</p:column>

<p:column headerText="Un dato del estudiante asociado a la matrícula aux">
<h:outputText value="#{aux.estudianteFK.atributoDelEstudiante}" />
</p:column>

<p:column headerText="Otro dato del estudiante asociado a la matrícula aux">
<h:outputText value="#{aux.estudianteFK.otroAtributoDelEstudiante}" />
</p:column>
0
ответ дан 02.12.2019, 05:34