Cannot add or update a child row: a foreign key constraint fails (xiaonei/photo1, CONSTRAINT FKC50C883FA1694277 FOREIGN KEY (albumId) REFERENCES album (id))
public ActionForward oneAlbumUI(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
//System.out.println("oneAlbumUI...");
//这里,我们要完成把图片上传到服务器,并保存记录到Photo对象
//先考虑用户上传一张图片的情况
AlbumForm albumForm = (AlbumForm) form;
Admin admin = (Admin) request.getSession().getAttribute("admin");
//Users loginUser = (Users) request.getSession().getAttribute("loginuser");
FormFile photo1 = albumForm.getPhoto1();
if(!"".equals(photo1.getFileName())){
//说明用户上传了第一张图片
//把图片上传上去
//再把信息保存到数据库
String newFileName = MyTools.uploadPhoto(request, photo1, admin.getId()+"", albumForm.getId());
Photo1 myPhoto1 = new Photo1();
myPhoto1.setIndate(new Date());
myPhoto1.setAlbum((Album) albumService1.findById(Album.class, Integer.valueOf(albumForm.getId()))); //该图片属于哪个相册
myPhoto1.setPhoto(newFileName);
//这句话就是把信息保存到数据库
albumService1.save(myPhoto1);
}
}
我在上一页面上调用Action保存了Album的信息,然后跳转到一下个页面调用Action保存Photo信息,但是报错,这是为什么?
myPhoto1.setAlbum((Album) albumService1.findById(Album.class, Integer.valueOf(albumForm.getId())));
//该图片属于哪个相册
从这段代码可知你的表有主子表关系,从异常信息来看,应该是图片还没有上传成功,导致albumForm.getId()获取不到,更新子表photo主外键引用约束错误。
先在页面稍微控制一下,只有当图片上传成功后才能跳转到一下个页面调用Action保存Photo信息.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。