今天在公司(Symbio CORP .)里修改一个老的投票系统的时候出现了一个和事物处理相关问题,最终在Andy的帮助下得以解决。首先真的很感谢他的帮助!呵呵,说实话他真对Spring很了解!还得多向他学习。
问题是这样的
问题是这样的
控制器VoteViewFrontController的save方法的代码(SPRING MVC)
- public ModelAndView save(HttpServletRequest request,
- HttpServletResponse response) throws Exception {
- long id = RequestUtil.getLongParameter(request, "id");
- String cookieName = "Vote" + id;
- Cookie c = RequestUtil.getCookie(request, cookieName);
- if (c != null) {
- return view(request, response);
- }
- String[] ids = request.getParameterValues("voteSub");
- Map model = new HashMap();
- Vote vote = null;
- Vote lastVote = null;
- Vote nextVote = null;
- Set voteContents = null;
- vote = voteManager.getVote(new Long(id));
- if (id > 0) {
- vote = voteManager.getVote(new Long(id));
- if (id - 1 > 0) {
- lastVote = voteManager.getVote(new Long(id - 1));
- }
- if (id + 1 > 0) {
- nextVote = voteManager.getVote(new Long(id + 1));
- }
- voteContents = vote.getVoteContents();
- } else {
- throw new Exception("Invalid vote id.");
- }
- model.put("vote", vote);
- if (lastVote != null) {
- model.put("lastVote", lastVote);
- }
- model.put("vote", vote);
- if (nextVote != null) {
- model.put("nextVote", nextVote);
- }
- List voteContentsL = new ArrayList();
- voteContentsL.addAll(voteContents);
- Collections.sort(voteContentsL);
- model.put("voteContents", voteContentsL);
- if (ids != null) {
- String id1;
- // VoteContent bean = new VoteContent();
- for (int i = 0; i < ids.length; i++) {
- id1 = ids[i];
- voteContentManager.saveVoteContent(Long.valueOf(id1), request
- .getRemoteAddr());
- }
- } else {
- model.put("error", "error");
- return new ModelAndView("voteView", "model", model);
- }
- String saved = "saved";
- model.put("saved", saved);
- String cookiePath = "";
- String cookieValue = "cookieValue";
- RequestUtil.setCookie(response, cookieName, cookieValue, cookiePath);
- return new ModelAndView("voteView", "model", model);
- }
java 代码
- public void saveVoteContent(VoteContent voteContent) {
- // if (voteContent.getId() == null)
- // getHibernateTemplate().save(voteContent);
- // else
- // getHibernateTemplate().update(voteContent);
- getSession().saveOrUpdate(voteContent);
- }
- public void saveVoteContent(Long id, String ip) {
- List voteContents =
- getHibernateTemplate()
- .find("from VoteContent n where n.id = ?", id);
- VoteContent voteContent = new VoteContent();
- if (voteContents.size() > 0) {
- voteContent = (VoteContent) voteContents.get(0);
- }
- long count;
- if (voteContent.getCount() != null)
- count = voteContent.getCount().longValue();
- else
- count = 0;
- count++;
- voteContent.setCount(new Long(count));
- voteContent.setIp(ip);
- voteContent.setModifiedDate(new Date());
- getSession().saveOrUpdate(voteContent);
- }
- public void vote(Long id, String ip) {
- List voteContents =
- getHibernateTemplate()
- .find("from VoteContent n where n.id = ?", id);
- VoteContent voteContent = new VoteContent();
- if (voteContents.size() > 0) {
- voteContent = (VoteContent) voteContents.get(0);
- }
- long count;
- if (voteContent.getCount() != null)
- count = voteContent.getCount().longValue();
- else
- count = 0;
- count++;
- voteContent.setCount(new Long(count));
- voteContent.setIp(ip);
- voteContent.setModifiedDate(new Date());
- saveVoteContent(voteContent);
- }
文章资料整理中。。。。。。。
近期完成