Witam wszystkich,
Mam kod pobierający dane z różnych tabel i zwracający wynik w postaci listy obiektów:
public List<Object> getHouseInfo(){
Query q = em.createNativeQuery("SELECT houses.id, addresses.country, addresses.region, house_details.rooms, house_details.square FROM houses, addresses, house_details");
List<Object> myList = q.getResultList();
return myList;
}
Teraz chciałbym pozyskać te dane i wyświetlić je w moim kontrolerze. Próbowałem w następujący sposób:
List<Object> list = getHouseInfo();
for (int i=0; i<list.size; i++){
System.out.println("Element "+i+list.get(0));
}
Jednakże w ten sposób otrzymuję jedynie referencje do obiektów z listy (np. [Ljava.lang.Object;@167a47b). Próbowałem używać iteratora a także następującego kodu:
List<Object> list = getHouseInfo();
for (int i=0; i<list.size; i++){
System.out.println("Element "+i+list.get(0)[0]);
}
Niestety kończy się to błędem kompilacji.
W aplikacji używam również MyFaces gdzie mam następujący kod (houseControll to nazwa mojego kontrolera a full offer metoda zwracająca listę obiektów):
<t:dataList id="myDataList" value="#{houseControll.fullOffer}" var="element" rows="3" >
...
<t:outputText id="houseId" value="#{element[0]}"/>
...
</t:dataList>
W tym wypadku otrzymuję poprawne wartości 'id' - 1,2,3... Jak zatem dostać się do tych wartości w kontrolerze? Jak pozyskać z listy obiektów (List<Object>) konkretne wartości elementów?