JPAで構築されたいくつかのデータベース呼び出しを含むグラスフィッシュのWebアプリケーションがあります。ただし、Web アプリを再デプロイするたびに、アイテムを取得しようとすると ClassCastException com.item.DBItem cannot be cast to com.item.DBItem が発生します。
public DBItem findActiveItemId(String itemid){
EntityManager em = getEntityManager();
try{
Query q = em.createQuery("SELECT c from DBItems c WHERE c.itemId = :cid AND c.active = 1");
q.setParameter("cid", itemid);
return (DBItem)q.getSingleResult();
}catch(javax.persistence.NoResultException nre){
return null;
}finally{
em.close();
}
}
GlassFish を再起動すると問題は解決しますが、そもそもなぜこのようなことが起こるのでしょうか?