Неожиданное исключение ClassCastException с использованием EJB

Я столкнулся с очень маленькой проблемой, которая сводит меня с ума.

Я вызываю бизнес-метод «public List getPsubcategoryList()» из сеансового компонента без сохранения состояния с именем SlBrowseProducts. Этот метод использовал экземпляр entitymanager для извлечения списка объектов из таблицы базы данных, сопоставленного с классом Entity с именем Psubcategory. это я сделал, используя namedQuery. Возвращаемый список содержит элементы типа Object, я должен присоединить итератор с именем myIterator к списку и привести каждый из myIterator.next() к типу Psubcategory, чтобы сделать результирующий элемент полезным и запустить на нем любые геттеры. Однако это приведение вернуло следующую ошибку.

СЕРЬЕЗНОЕ: java.lang.ClassCastException: entitybeans.Psubcategory нельзя преобразовать в entitybeans.Psubcategory

Я много пытался поискать в Google, чтобы найти причину этого... и я наткнулся на что-то под названием "Ад загрузчика классов", что может быть причиной этого...

Есть ли решение этой проблемы. Есть ли какой-нибудь другой способ обойти это... Я пытался не использовать итератор, а вместо этого использовать цикл for... но даже тогда мне приходится бросать... что снова приводит меня к той же проблеме...

Пожалуйста, помогите мне плотно по графику.

====================JSP PAGE==================

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;
   }
}

person Ravishkumar patil    schedule 26.01.2012    source источник
comment
Как определяется ваш запрос Psubcategory.findAll? Почему нельзя использовать createNamedquery(name, resultClass)? Вы возвращаете список @Entity классов? Почему вы не используете внедрение зависимостей и не используете Persistence?   -  person Piotr Nowicki    schedule 26.01.2012