我是Java新手,在显示对象列表中的数据方面存在问题.我有一个简单的方法,它应该跨多个表收集数据并将其返回给我的控制器:
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;}
Run Code Online (Sandbox Code Playgroud)
现在我想在控制器中获取这些数据,但我不知道如何从列表中获取单个结果.我试着这样做:
List<Object> list = getHouseInfo();
for (int i=0; i<list.size; i++){
System.out.println("Element "+i+list.get(0));}
Run Code Online (Sandbox Code Playgroud)
但我只获得对这个对象的引用(例如[Ljava.lang.Object; @ 167a47b).我也试过使用Iterator,但结果是一样的.我试着使用这样的代码:
List<Object> list = getHouseInfo();
for (int i=0; i<list.size; i++){
System.out.println("Element "+i+list.get(0)[0]);}
Run Code Online (Sandbox Code Playgroud)
但它也没有帮助我 - 这以编译错误结束.
有人能告诉我如何从这个列表中获取'id'(整数值)吗?我在我的'View'中使用MyFaces,我有这样的代码(houseControll是我的JSF Managed Bean的名称 - 控制器):
<t:dataList id="myDataList" value="#{houseControll.fullOffer}" var="element" rows="3" >
...
<t:outputText id="houseId" value="#{element[0]}"/>
...
</t:dataList>
Run Code Online (Sandbox Code Playgroud)
此代码正确显示'id'值 - 我有1,2,3,...值.如何在控制器中获得相同的结果?如何在控制器中打印数据?
java ×1