如果我要修改文章的分类,把在A类的文章移动到B类,怎么写?我是这样写的但是报主外键错误update Article as a set a.articleClass.classId=:newClassId where a.articleClass.classId=:classIdArticle 是文章articleClass是文章的分类 articleClass.classId是分类的ID
update Article as a set a.articleClass = ? where a.articleId = ? setParameter(1, articleClass).setParameter(2);//articleClass是对象 hiberbate是面向对象的操作,直接操作对象就ok啦
1.获得这个Article对象实例 a
2.获得当前文章的分类实例:ArticleClass class = a.getArticleClass();
3.设置class.setArticleClass(newClassId);
4.class.save();
5.a.save(); //跟你配置ArticleClass与Article关联关系有关,双向or单项。
也就是,当你在修改的时候,你肯定会有一个选择分类的。当你选择了B类后,它会有一个ID(假如A类的ID为1,B类的ID为2)。那也就是说,选择B类后,在保存的时候,就会把【article】表里存储articleClass里的id改为2.这样子就可以了。在修改的时候,你根据【article】的ID去修改articleClass id。Artilce article=new Article();
article.setarticleclassid(articleclassid);你应该也有一个DAO的方法吧!你要在ArticleDAO这个类里定义一个update的方法。ArticleDAO adao=new ArticleDAO();
adao.update(artilce);
大致方向是对的,不过我这修改的不是一篇文章,是把一个分类下的文章整个换一个分类,当然也就是修改classId,所以我就用了HQL,可是那么写会爆错误。是这样的,实际应用中删除了一个分类,但是里面有文章,我想做到在删除这个分类的时候,把这些文章的分类改成父类别里,然后删除这个分类。
setParameter(1, articleClass).setParameter(2);//articleClass是对象
hiberbate是面向对象的操作,直接操作对象就ok啦