![]() |
#2
砖家的谎言2014-05-31 23:18
|

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 编辑 ]