/** 普通帖 */
publicstaticfinalintTYPE_NORMAL = 0;
/** 精华帖 */
publicstaticfinalintTYPE_BEST = 1;
/** 置顶帖 */
publicstaticfinalintTYPE_TOP = 2;
public List<Topic> findByForum(Forum forum) {
return getSession().createQuery(//
// 排序:所有置顶帖在最上面,并按最后更新时间排序,让新状态的在上面。
"FROM Topict WHERE t.forum=? ORDER BY (CASE t.type WHEN 2 THEN 2 ELSE 0 END) DESC, t.lastUpdateTimeDESC")//
.setParameter(0, forum)//
.list();
}
这就是抹掉0和1之间的区别,可以用type/2
public List<Topic> findByForum(Forum forum) {
return getSession().createQuery(//
// 排序:所有置顶帖在最上面,并按最后更新时间排序,让新状态的在上面。
"FROM Topict WHERE t.forum=? ORDER BY (CASE t.type WHEN 2 THEN 2 ELSE 0 END) DESC,t.lastUpdateTime DESC")//
.setParameter(0, forum)//
.list();
}
一、特殊属性的作用
Forum |
topicCount |
主题数量 |
articleCount |
文章数量(主题数+回复数) |
|
lastTopic |
最后发表的主题 |
|
Topic |
replyCount |
回复数量 |
lastReply |
最后发表的回复 |
|
lastUpdateTime |
最后更新时间(主题的发表时间或最后回复的时间) |
二、特殊属性的维护
|
|
发表新主题 |
发表新回复 |
Forum |
topicCount |
加1 |
|
articleCount |
加1 |
加1 |
|
lastTopic |
更新为当前的新主题 |
|
|
Topic |
replyCount |
0,默认值 |
加1 |
lastReply |
Null,默认值 |
更新为当前的新回复 |
|
lastUpdateTime |
主题的发表时间 |
更新为当前新回复的时间 |
使用fckeditor