两种方法实现,1、把关联表的数据全删除了重新添加,代码如下
2、根据id判断,如果相等不更新,如果不等更新。
@Override
@Transactional(rollbackFor=Exception.class)
public WShare fixEdit(WShare tempVo) throws ChecksException {
tempVo.hqlDelUpdate("delete from WShareTag where WShare.id='"+tempVo.getId()+"'");
if(tempVo.getMemo()!=null||tempVo.getMemo()!=""){
String []tags = tempVo.getMemo().split(";");
for (String tag : tags) {
WShareTag wst = (WShareTag) SpringContextUtil.getBean("WShareTag");
WTag aa = (WTag) tempVo.hqlQueryOne("from WTag where name='"+tag+"'");
if(aa!=null) {
wst.setWTag(aa);
}else{
WTag wt = (WTag) SpringContextUtil.getBean("WTag");
wt.setName(tag).setState(1);
wt.add();
wst.setWTag(wt);
}
wst.setWShare(tempVo).setState(1);
wst.add();
}
}
tempVo.hqlDelUpdate(tempVo.editSQLmaker(),tempVo);
return tempVo;
}
2、根据id判断,如果相等不更新,如果不等更新。