sql >> Databasteknik >  >> RDS >> Mysql

Visa data från anpassad fråga (sammanfogade tabeller) i liferay-sökbehållare

Jag ser att name , titel , status och anmärkningar fält är alla String (enligt din kommentar ) så i för loop bör du casta Objektet som en String och du behöver inte de fyra ArrayList för detta.

Så här skulle radtaggen se ut:

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

Varsågod, det här borde fungera.

Ett renare sätt tror jag skulle vara att ha en POJO definierad som skulle lagra dessa värden och sedan kan POJO:s lista returneras. Jag har dock inte provat den andra metoden.

En annan standardmetod är att inkludera extra fält i något av entitetens *Impl och sedan returnera listan över den enheten, i ditt fall skulle jag anta att du har Student och Närvaro enheter, så att du kan lägga till fälten status &anmärkningar i StudentImpl och returnera sedan en List eller sätt fname i AttendanceImpl och returnera Lista från hittametoden. (uppdaterat efter den här kommentaren )




  1. Hur AUTOINCREMENT fungerar i SQLite

  2. Oracle SQL GROUP BY inte ett GROUP BY uttryck hjälp

  3. Lägesberäkning utan ett underfrågefält i MySQL?

  4. Trace Flag 2389 och den nya Cardinality Estimator