2012-01-26 17 views
0

を使用して、私は怒っ私を運転している非常に小さな問題に直面しています。..予期しない場合ClassCastException ... EJB

私はSlBrowseProductsという名前のステートレスSessionBeanのからビジネス・メソッドの公開リストgetPsubcategoryListを() 'の呼び出しています。これentitymanagerインスタンスを使用して、Psubcategoryという名前のEntityクラスにマッピングされたデータベーステーブルからオブジェクトのリストを取得するメソッド。これはnamedQueryを使って行った。返されるリストにはObject型の要素が含まれています。myIteratorという名前のイテレータをアタッチして、myIterator.next()の各要素を型名Psubcategoryにキャストしてキャストし、結果要素を有用にしてゲッターを実行する必要があります。しかし、このキャスティングは

SEVERE ..次のエラーが返されました:java.lang.ClassCastExceptionが:entitybeans.Psubcategoryがする..私はそれのための原因を見つけるために広くグーグルで試みたentitybeans.Psubcategory

をキャストすることはできません私はそれを引き起こしている可能性があります 'ClassLoader地獄'と呼ばれるものに出くわしました..

この問題の解決策はありますか?これ以外の方法はありますか?Iteratorを使用せず、forループを使用しようとしました...しかし、それでもキャストする必要があります。同じ問題に私が再び遭遇します。

予定どおりにタイトに。

==================== 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()); 
    } 
関連する問題