2010-06-12 61 views
0

我試圖做到以下幾點:可以一個List <>被轉換爲DataModel的

public String createByMarcas() { 
    items = (DataModel) ejbFacade.findByMarcas(current.getIdMarca().getId()); 
    updateCurrentItem(); 
    return "List"; 
} 

public List<Modelos> findByMarcas(int idMarca){ 
    return em.createQuery("SELECT id, descripcion FROM Modelos WHERE id_marca ="+idMarca+"").getResultList(); 
} 

不過我老覺得厚望:

Caused by: javax.ejb.EJBException 
at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:5070) 
at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:4968) 
at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4756) 
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1955) 
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1906) 
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:198) 
at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:84) 
at $Proxy347.findByMarcas(Unknown Source) 
at controladores.__EJB31_Generated__ModelosFacade__Intf____Bean__.findByMarcas(Unknown Source) 

誰能舉個手嗎? 非常感謝你

回答

2

您在尋找JSF DataModel的功能setWrapperData()

例子:

DataModel dataModel; 
List list; 

list = em.createQuery("Select b from Book b").getResultList(); 
dataModel.setWrapperData(list); 
+0

對於我來說,這段代碼對於將'List <>'轉換爲'DataModel'工作正常。 – John 2016-04-19 11:14:08

1

我想你的問題最明顯的答案是不。您查詢的內容會回退一個java.util.List,這與JSF DataModel無關,假設這就是您要投射的內容。我對JSF一無所知,但似乎有一個ListDataModel可用於包裝列表,所以這可能有助於你的情況。

+0

是的,我強制轉換爲JSF DataModel的,我會努力的ListDataModel業務,但你知道有關此異常的東西嗎? em是EntityManager,如果它有幫助,它不應該工作? – 2010-06-12 05:36:48

+0

我不知道你的設置,但是從我所瞭解的JPA來看,當一個方法由於異常而無法正常完成時拋出EJBException。在你的情況下,它應該包裝一個ClassCastException,我期望。您提供的堆棧跟蹤是否完整? – 2010-06-12 05:58:41

+0

不是不完整它實際上相當大,我應該粘貼在這裏嗎? – 2010-06-12 12:02:25

相關問題