java.lang.ClassCastException:java.util.Vector不能强制转换为java.uti



我正在学习JavaEE,并寻求一些帮助。我正试图从DerbyDB表中获取所有记录,以显示在xhtml页面(dataTable)上。我收到这个错误"java.lang.ClassCastException:java.util.Vector无法转换为java.util.ArrayList"。

  1. 有人能解释一下这个错误以及我需要如何修复它吗
  2. 如何触发数据表仅在单击"打印"按钮时显示?提前感谢

我的命名查询:

命名查询({@NamedQuery(name="getAllItemActivities",query="从LibraryItemActivity c中选择c")})

我的豆经理:

私人ArrayList活动;

public ArrayList getActivities(){

  return control.getActivites();

}

我的控制豆:

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>

javax.persistence.Query.getResultList()返回java.util.List,而不是ArrayList。

将ArrayList声明更改为java.util.List.

最新更新