2012-01-26 26 views
0

我面对它快把我逼疯了一个非常小的问题..意外ClassCastException异常...使用EJB

我打电话从一个无状态会话Bean名为SlBrowseProducts的商业方法“公开名单getPsubcategoryList()”。这方法使用entitymanager实例从数据库表中检索对象列表,并将其映射到名为Psubcategory的实体类。这我没有使用namedQuery。返回的列表包含Object类型的元素,我必须附加一个名为myIterator的迭代器来列出并将myIterator.next()的每个元素转换为Psubcategory类型,以使结果元素有用,并在其上运行任何getter。然而,这铸造返回以下错误..

重度:java.lang.ClassCastException:entitybeans.Psubcategory不能转换到entitybeans.Psubcategory

我试着用搜索引擎广泛找到原因吧..到我遇到了一个叫做'ClassLoader Hell'的东西,可能会导致它..

有没有解决这个问题的方法。有没有其他解决方法...我曾尝试不使用迭代器,而是使用for循环...但即使如此,我必须投..再次让我陷入同样的​​问题..

请帮助m按计划紧张。

==================== JSP页面==================

List<Psubcategory> subcategoryList1 = slbp.getProductSubcategories();     
if(subcategoryList1.size()!=0){ 
    for(int i=0;i<subcategoryList1.size();i++){ 
     Psubcategory temp = subcategoryList1.get(i); 
     System.out.print(temp.getSubcategory()); 
    } 
} 

====================== SLBrowseProducts.java ======================

@Stateless 
@LocalBean 
public class SLBrowseProducts implements TestInterface { 

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("INNOVATIVE-INDOORSPU"); 
    EntityManager em = emf.createEntityManager();  

    @Override 
    public List getProductSubcategories(){ 
     List subcategoryList=em.createNamedQuery("Psubcategory.findAll").getResultList();   
     return subcategoryList; 
    } 
} 
+0

你的查询是如何指定的'Psubcategory.findAll'?为什么不能使用'createNamedquery(name,resultClass)'?你是否返回'@ Entity'类的列表?为什么不使用依赖注入并使用持久性? –

回答

0
@Stateless 
@LocalBean 
public class SLBrowseProducts implements TestInterface { 

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("INNOVATIVE-INDOORSPU"); 
    EntityManager em = emf.createEntityManager();  

    @Override 
    public List<Psubcategory> getProductSubcategories(){ 
     List<Psubcategory> subcategoryList= 
           em.createNamedQuery("Psubcategory.findAll").getResultList();   
     return subcategoryList; 
    } 
} 
============================================================================================ 
List<Psubcategory> subcategoryList1 = slbp.getProductSubcategories();     
    for(Psubcategory temp : subcategoryList1){ 
     System.out.print(temp.getSubcategory()); 
    }