注册 登录
编程论坛 J2EE论坛

求大神指点! Java Action 终止,不报错

shaw80 发布于 2014-05-31 14:23, 2237 次点击
程序代码:
        


        private String name;//从前台获取标签名称字符串
        private Evaluation evaluation;//评价对象
        private XXXDao xxxdao;//各种dao
        getXXX...
        setXXX...(这部分省略)

        //保存评价信息
        public String testsaveEvaluation()
        {
            Timestamp time = new Timestamp(System.currentTimeMillis());//获取系统时间
           

            Evaluation e = new Evaluation();//实例化一个Evaluation评价对象,并赋值
            e.setGoodsId(3);
            int score = evaluation.getScore();
            System.out.println(score);
            e.setLoginName("shaw80");
            e.setScore(evaluation.getScore());
            e.setFeeling(evaluation.getFeeling());
            e.setTime(time);
            e.setDeleteFlag(0);
            this.evaluationDao.saveEvaluation(e);//保存评价对象
           

            String [] str = name.split(",");
            System.out.println(str);
            for (String tagName : str)//遍历数组str
            {
                Tag tag = new Tag();
                tag = this.tagDao.findTagByName(tagName);//根据标签名称查询标签
                System.out.println(tagName);
                if( tag != null )//如果标签存在
                {
                    Evaluation_Tag et = new Evaluation_Tag();//实例化一个中间表对象,并赋值
                    System.out.println(e.getId());
                    et.setEvaluationId(e.getId());
                    System.out.println(tag.getId());
                    et.setTagId(tag.getId());
                    this.evaluationDao.saveEvaluationTag(et);//保存中间表----如果没有新标签,只能循环2次,保存前2条数据,保存第3条时debug停住不动。如果有新标签,先执行else,新标签和中间表能正常保存,循环回来,保存时debug停住不动,不报错。不保存。这是什么情况??
                }else//如果标签不存在
                {
                    Tag newtag = new Tag();//实例化一个新标签,并赋值
                    newtag.setName(tagName);
                    Goods goods = this.goodsDao.findByid(3);//根据商品id查询商品对象
                    newtag.setClassifyName(goods.getClassifyName());
                    newtag.setType("c");
                    newtag.setDeleteFlag(0);
                    this.tagDao.saveTag(newtag);//保存标签信息
                  

                    Evaluation_Tag et = new Evaluation_Tag();//实例化一个中间表对象,并赋值
                    et.setEvaluationId(e.getId());
                    et.setTagId(newtag.getId());
                    this.evaluationDao.saveEvaluationTag(et);//保存中间表
                }
            }
            return "toIndex";
        }





问题已在代码中标注:保存已存在标签的中间表时,debug时停住不动。不报错,不保存。找不到问题所在,请各位大神帮忙...


[ 本帖最后由 shaw80 于 2014-5-31 15:58 编辑 ]
2 回复
#2
砖家的谎言2014-05-31 23:18
既然没有报错,就要检查你的程序逻辑的设计问题了
#3
shaw802014-06-03 09:23
回复 2 楼 砖家的谎言
尝试修改了程序的循环结构,还是一样。关键是我要插入的中间表,各项数据都能够正常打印出来,只是插入不了。如果说,Dao不能用,那新标签的中间表还能正常的插入。真是奇葩了。

[ 本帖最后由 shaw80 于 2014-6-3 09:25 编辑 ]
1