sql >> Base de Datos >  >> RDS >> Mysql

Mostrar datos de Consulta personalizada (tablas unidas) en el contenedor de búsqueda de liferay

Veo que el name , title , status y remarks todos los campos son String (según su comentario ) por lo que en el for loop deberías lanzar el Object como una String y no necesitas los cuatro ArrayList por esto.

Así es como se vería la etiqueta de la fila:

<liferay-ui:search-container-row className="java.lang.Object" modelVar="search">

    <%--
        Since an "Object[]" is nothing but an "Object", we first cast the "search"
        instance to an "Object[]" and then to a "String"
    --%>
    <liferay-ui:search-container-column-text name='name' value='<%= (String) ((Object[])search)[0] %>' /> 
    <liferay-ui:search-container-column-text name='title' value='<%= (String) ((Object[])search)[1] %>' /> 
    <liferay-ui:search-container-column-text name='status' value='<%= (String) ((Object[])search)[2] %>' /> 
    <liferay-ui:search-container-column-text name='remarks' value='<%= (String) ((Object[])search)[3] %>' /> 

</liferay-ui:search-container-row>

Ahí tienes, esto debería funcionar.

Creo que una forma más limpia sería tener un POJO definido que almacenaría estos valores y luego se puede devolver la lista de POJO. Sin embargo, no he probado el segundo enfoque.

Otro enfoque estándar es incluir campos adicionales en cualquiera de los *Impl de la entidad. y luego devolver la lista de esa entidad, en su caso asumiría que tiene Student y Attendance entidades, para que pueda poner los campos status &remarks en StudentImpl y luego devolver un List<Student> o poner fname en AttendanceImpl y devolver List<Attendance> del método del buscador. (actualizado después de este comentario )