Mysql
 sql >> Database >  >> RDS >> Mysql

Visualizza i dati da query personalizzate (tabelle unite) nel contenitore di ricerca liferay

Vedo che il name , title , status e remarks i campi sono tutti String (come da commenta ) così nel for loop dovresti lanciare Object come String e non hai bisogno dei quattro ArrayList per questo.

Ecco come apparirà il tag di riga:

<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>

Ecco fatto, dovrebbe funzionare.

Penso che un modo più pulito sarebbe avere un POJO definito che memorizzerebbe questi valori e quindi è possibile restituire l'elenco del POJO. Tuttavia, non ho provato il secondo approccio.

Un altro approccio standard consiste nell'includere campi extra in uno qualsiasi dei *Impl dell'entità e poi restituendo l'elenco di quell'entità, nel tuo caso suppongo che tu abbia Student e Attendance entità, quindi puoi inserire i campi status &remarks in StudentImpl e quindi restituire un List<Student> oppure inserisci fname in AttendanceImpl e restituisci List<Attendance> dal metodo di ricerca. (aggiornato dopo questo commento )