SPRING AOP Transaction

    今天在公司(Symbio CORP .)里修改一个老的投票系统的时候出现了一个和事物处理相关问题,最终在Andy的帮助下得以解决。首先真的很感谢他的帮助!呵呵,说实话他真对Spring很了解!还得多向他学习。
    问题是这样的
控制器VoteViewFrontController的save方法的代码(SPRING MVC)
  1. public ModelAndView save(HttpServletRequest request,   
  2.                             HttpServletResponse response) throws Exception {   
  3.        long id = RequestUtil.getLongParameter(request, "id");   
  4.        String cookieName = "Vote" + id;   
  5.        Cookie c = RequestUtil.getCookie(request, cookieName);   
  6.        if (c != null) {   
  7.            return view(request, response);   
  8.        }   
  9.        String[] ids = request.getParameterValues("voteSub");   
  10.        Map model = new HashMap();   
  11.        Vote vote = null;   
  12.        Vote lastVote = null;   
  13.        Vote nextVote = null;   
  14.        Set voteContents = null;   
  15.        vote = voteManager.getVote(new Long(id));   
  16.        if (id > 0) {   
  17.            vote = voteManager.getVote(new Long(id));   
  18.            if (id - 1 > 0) {   
  19.                lastVote = voteManager.getVote(new Long(id - 1));   
  20.            }   
  21.            if (id + 1 > 0) {   
  22.                nextVote = voteManager.getVote(new Long(id + 1));   
  23.            }   
  24.            voteContents = vote.getVoteContents();   
  25.        } else {   
  26.            throw new Exception("Invalid vote id.");   
  27.        }   
  28.        model.put("vote", vote);   
  29.        if (lastVote != null) {   
  30.            model.put("lastVote", lastVote);   
  31.        }   
  32.        model.put("vote", vote);   
  33.        if (nextVote != null) {   
  34.            model.put("nextVote", nextVote);   
  35.        }   
  36.        List voteContentsL = new ArrayList();   
  37.        voteContentsL.addAll(voteContents);   
  38.        Collections.sort(voteContentsL);   
  39.        model.put("voteContents", voteContentsL);   
  40.        if (ids != null) {   
  41.            String id1;   
  42.            // VoteContent bean = new VoteContent();   
  43.            for (int i = 0; i < ids.length; i++) {   
  44.                id1 = ids[i];   
  45.                voteContentManager.saveVoteContent(Long.valueOf(id1), request   
  46.                    .getRemoteAddr());   
  47.            }   
  48.        } else {   
  49.            model.put("error""error");   
  50.            return new ModelAndView("voteView""model", model);   
  51.        }   
  52.        String saved = "saved";   
  53.        model.put("saved", saved);   
  54.        String cookiePath = "";   
  55.        String cookieValue = "cookieValue";   
  56.        RequestUtil.setCookie(response, cookieName, cookieValue, cookiePath);   
  57.        return new ModelAndView("voteView""model", model);   
  58.    }  

 

java 代码
  1. public void saveVoteContent(VoteContent voteContent) {   
  2.        // if (voteContent.getId() == null)   
  3.        // getHibernateTemplate().save(voteContent);   
  4.        // else   
  5.        // getHibernateTemplate().update(voteContent);   
  6.        getSession().saveOrUpdate(voteContent);   
  7.    }   
  8.   
  9.    public void saveVoteContent(Long id, String ip) {   
  10.        List voteContents =   
  11.            getHibernateTemplate()   
  12.                .find("from VoteContent n where n.id = ?", id);   
  13.        VoteContent voteContent = new VoteContent();   
  14.        if (voteContents.size() > 0) {   
  15.            voteContent = (VoteContent) voteContents.get(0);   
  16.        }   
  17.        long count;   
  18.        if (voteContent.getCount() != null)   
  19.            count = voteContent.getCount().longValue();   
  20.        else  
  21.            count = 0;   
  22.        count++;   
  23.        voteContent.setCount(new Long(count));   
  24.        voteContent.setIp(ip);   
  25.        voteContent.setModifiedDate(new Date());   
  26.        getSession().saveOrUpdate(voteContent);   
  27.    }   
  28.   
  29.    public void vote(Long id, String ip) {   
  30.        List voteContents =   
  31.            getHibernateTemplate()   
  32.                .find("from VoteContent n where n.id = ?", id);   
  33.        VoteContent voteContent = new VoteContent();   
  34.        if (voteContents.size() > 0) {   
  35.            voteContent = (VoteContent) voteContents.get(0);   
  36.        }   
  37.        long count;   
  38.        if (voteContent.getCount() != null)   
  39.            count = voteContent.getCount().longValue();   
  40.        else  
  41.            count = 0;   
  42.        count++;   
  43.        voteContent.setCount(new Long(count));   
  44.        voteContent.setIp(ip);   
  45.        voteContent.setModifiedDate(new Date());   
  46.        saveVoteContent(voteContent);   
  47.    }   

 

文章资料整理中。。。。。。。

近期完成

 

你可能感兴趣的:(spring,AOP,c,mvc,bean)