@Transactional
  @Override
  public QuestionVote vote(QuestionVote bean) {
    QuestionVote vote = new QuestionVote();
    vote.setId(-1l);
    if (bean.getQuestion() == null || bean.getUser() == null) {
      return vote;
    }
    Finder finder = Finder.create();
    finder.append("from QuestionVote q where q.user.id = :uid ");
    finder.setParam("uid", bean.getUser().getId());
    finder.append(" and q.question.id = :aid");
    finder.setParam("aid", bean.getQuestion().getId());
    List<QuestionVote> vs = dao.find(finder);
    if (vs != null && vs.size() > 0) {

    } else {
      vote = dao.save(bean);
    }
    Finder coutfinder = Finder.create();
    coutfinder.append("from QuestionVote q where q.question.id=:aid");
    coutfinder.setParam("aid", bean.getQuestion().getId());
    int size = dao.countQueryResult(coutfinder);
    QuestionAnswer answer = answerDao.findById(bean.getQuestion().getId());
    if (answer != null) {
      answer.setUps(size);
    }
    return vote;
  }
 @Transactional(readOnly = true)
 public UserMessagePage getPage(int pageNo, int pageSize) {
   UserMessagePage result = null;
   Finder finder = Finder.create();
   finder.append("from UserMessage f ");
   finder.append(" order by f.id desc  ");
   Pagination<UserMessage> page = dao.find(finder, pageNo, pageSize);
   result = new UserMessagePage(page);
   return result;
 }