1.将普通帖,精华帖和置顶帖当做常量,如下。
/**普通帖*/
public static final int TYPE_NORMAL = 0;
/**精华帖*/
public static final int TYPE_BEST = 1;
/**置顶帖*/
public static final int TYPE_TOP = 2;
在发帖的过程中,只把置顶帖放到最上面,精华帖和普通帖一样需按照发表时间来排序,最后发表的排在上面。可以将SQL语句写成:
"FROM Topic t WHERE t.forum=? ORDER BY (CASE t.type WHEN 2 THEN 2 ELSE 0 END) DESC,
t.lastUpdateTime DESC")//
.setParameter(0, forum)//
.list();