Technical Details
java.lang.ClassCastException: com.casinocity.bean.GameCategory cannot be cast to java.lang.Comparable at java.util.TreeMap.put(TreeMap.java:542) at com.casinocity.front.action.HomeAction.execute(HomeAction.java:50) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440) at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
public String execute() throws Exception {
HttpServletRequest req=ServletActionContext.getRequest();
// 获取总游戏数
GameDAO gameDao = new GameDAO();
total_games = gameDao.findAll(0).size();
// 获取新闻列表
newsList = new NewsBO().getNewsList(0, Constants.ALL_NEWS_TYPE, 15);
// 随机获取一个独立奖金的游戏
List<Game> exclusiveGameList = gameDao
.findBySQL(" from Game where isExclusive = true order by random()");
if (exclusiveGameList.size() > 0)
exclusiveGame = exclusiveGameList.get(0);
// 获取所有的游戏类别
List<GameCategory> gcList = new GameCategoryDAO().findAll(0);
List<Game> list ;
for (GameCategory gc : gcList) {
list = gameDao.find(gc.getGcId(), 4);
gameMap.put(gc, list);
gameNumMap.put(gc.getGcId(), gameDao.findTotalGame(gc.getGcId()));
}
System.out.println("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111");
//req.setAttribute("list", gcList);
return SUCCESS;
}
public List<Game> find(long gc_id, int num) {
Session sess = null;
try {
sess = getSession();
return sess.createSQLQuery(
"select * from game where gc_id = " + gc_id
+ " order by popularity desc limit " + num)
.addEntity(Game.class).list();
} catch (HibernateException e) {
throw e;
} finally {
if (null != sess)
closeSession(sess);
}
}
gameMap.put(gc, list); 执行第二次put 时报错