我試圖顯示使用Hibernate的酒店的名稱。但是當我迭代從數據庫中獲得的酒店列表時,iter.next()會給出一個ClassCastException,表示Object不能轉換爲Hotel類。這是我的方法。ClassCastException與Java與泛型的列表迭代器
public List<Hotel> getAllHotels()
{
List<Hotel> contracts = new ArrayList<Hotel>();
Transaction tx = null;
Session session = SessionFactoryUtil.getCurrentSession();
try
{
tx = session.beginTransaction();
contracts = session.createSQLQuery("select * from HOTEL").list();
System.out.println("*** Content of the Hotel Table ***");
System.out.println("*** Start ***");
for (Iterator<Hotel> iter = contracts.iterator(); iter.hasNext();) {
Hotel h = iter.next();
System.out.println(h.getHotelName());
}
System.out.println("*** End ***");
tx.commit();
}
catch(RuntimeException e)
{
if(tx != null && tx.isActive())
{
try
{// Second try catch as the rollback could fail as well
tx.rollback();
}
catch(HibernateException e1)
{
System.out.println("Error rolling back transaction");
}
// throw again the first exception
throw e;
}
}
return contracts;
}
我已經使用泛型的列表和迭代器,但無法找出錯誤。任何幫助表示讚賞。
看起來像迭代的對象有不同的類?你可能想添加你的異常棧跟蹤 – GhostCat
不同的類意味着什麼? – Lak