我正在学习JavaEE,并寻求一些帮助。我试图从Derby DB表中获取所有记录以显示在xhtml页面上(dataTable)。我收到此错误" java.lang.ClassCastException:java.util.Vector无法强制转换为java.util.ArrayList"。
我的命名查询:
NamedQueries({ @NamedQuery(name =" getAllItemActivities",query ="从LibraryItemActivity c&#34中选择c;) })
我的bean经理:
私人ArrayList活动;
public ArrayList getActivities(){
return control.getActivites();
}
我的控制bean:
public ArrayList getActivites(){
ArrayList<LibraryItemActivity> temp = (ArrayList<LibraryItemActivity>) em.createNamedQuery("getAllItemActivities").getResultList(); return temp;
}
我的html数据表:
<h:form>
<h:commandButton value = "Print"></h:commandButton>
<h:dataTable value = "#{libraryBeanManager.activities}" var = "a">
<h:column>
<f:facet name="header">Book Title:</f:facet>
#{a.libraryitemtitle}
</h:column>
<h:column>
<f:facet name="header">Author:</f:facet>
#{a.patron}
</h:column>
<h:column>
<f:facet name="header">Publisher:</f:facet>
#{a.activitytype}
</h:column>
</h:dataTable>
</h:form>
答案 0 :(得分:0)
javax.persistence.Query.getResultList()返回java.util.List,而不是ArrayList。
将ArrayList声明更改为java.util.List。