package org.verwandlung.voj.web.mapper; import org.apache.ibatis.annotations.CacheNamespace; import org.apache.ibatis.annotations.Param; import org.verwandlung.voj.web.model.DiscussionThread; import java.util.List; /** * DiscussionThread Data Access Object. * * @author Haozhe Xie */ @CacheNamespace(implementation = org.mybatis.caches.ehcache.EhcacheCache.class) public interface DiscussionThreadMapper { /** * 获取全部的讨论帖子 * @param problemId - 试题的唯一标识符 * @param discussionTopicId - 讨论话题的唯一标识符 * @param offset - 讨论帖子的起始ID * @param limit - 要获取帖子的数量 * @return 包含讨论帖子对象的列表 */ List<DiscussionThread> getDiscussionThreads( @Param("problemId") long problemId, @Param("discussionTopicId") int discussionTopicId, @Param("offset") long offset, @Param("limit") int limit); /** * 获取某个试题的题解讨论. * 题解讨论在创建试题时自动创建, 即为该试题相关的第1个讨论. * @param problemId - 试题的唯一标识符 * @return 某个试题的题解讨论DiscussionThread对象 */ DiscussionThread getSolutionThreadOfProblem(@Param("problemId") long problemId); /** * 根据讨论帖子的唯一标识符获取讨论帖子对象. * @param discussionThreadId - 讨论帖子的唯一标识符 * @return 对应的讨论帖子对象 */ DiscussionThread getDiscussionThreadUsingThreadId(@Param("discussionThreadId") long discussionThreadId); /** * 创建讨论帖子. * @param discussionThread - 待创建的讨论帖子 */ int createDiscussionThread(DiscussionThread discussionThread); /** * 更新讨论帖子. * @param discussionThread - 待更新的讨论帖子 */ int updateDiscussionThread(DiscussionThread discussionThread); /** * 删除讨论帖子. * @param discussionThreadId - 待删除讨论帖子的唯一标识符 */ int deleteDiscussionThreadUsingThreadId(long discussionThreadId); }