Java 无法从列表中生成属性

Java 无法从列表中生成属性,java,Java,我的实体Bean方法 public List<Object> Available_RoomType(String startDate, String EndDate, String name) { List<Object> arr_room = em.createNativeQuery("select T.* " + "from RoomType T" + " inner join Room R on R.R

我的实体Bean方法

 public List<Object> Available_RoomType(String startDate, String EndDate, String name) {
    List<Object> arr_room =  em.createNativeQuery("select  T.* "
            + "from RoomType T"
            + "  inner join Room R on R.RoomTypeID = T.RoomTypeID"
            + "  left join Booking B on B.RoomID = R.RoomID"
            + " where T.Name = '" + name + "' and"
            + "  ((('" + startDate + "' not between B.checkindate and B.checkoutdate) and"
            + "  ('" + EndDate + "' not between B.checkindate and B.checkoutdate)) or"
            + "  (B.BookingID is null))" , Roomtype.class).getResultList();

    return arr_room;
}
当我在测试oracle sql开发人员时从中运行该查询时,该查询将返回一行。 我的JSP页面

我使用实体bean的方法,它返回一个大小为0的行

List<Object> result = guestSession.Available_RoomType(startDateString, endDateString, name);

             List<Roomtype> new_room;
                            List<? extends Object> list = result;
                            new_room = (List<Roomtype>) list;

    %>
    <table>
        <%if(new_room!=null){
                            for(Roomtype r : new_room){%>
        <tr>

            <td><%= r.getName() %></td>
            <td><%= r.getDescription() %></td>
            <td><%= r.getPrice() %></td>
        </tr>

   <%}
        }%>
    </table><%
        }
    %>

但当我在foreach中使用它时,为了获取属性,编译器在foreach上跳转,没有显示属性。页面变为空。请帮助

与问题无关,但您需要使用预处理语句,因为SQL易受SQL注入的影响。所以,如果我理解正确,您有一个返回列表的方法。调用该方法,在列表上迭代,然后打印每个元素。不会打印任何内容,也不会抛出错误。我的结论很简单:列表是空的。检查您的查询,并检查其参数。请注意,代码有很多错误:不遵守命名约定,不使用准备好的语句,将Java代码放入JSP,不从方法返回适当的类型,使用字符串保存日期,不缩进代码。。。