hibernate 在多的一方插入数据,发现除了外键,其他字段保存成功

来源:互联网 发布:mac桌面双桌面用 编辑:程序博客网 时间:2024/05/01 16:02

例如:speaker类 和 video类    一个speaker发布多个video

speaker{

private int id;

private String name;

}

video{

private int id;

private String name;

private Speaker speaker;

private int speaker_id; //这是数据库中的外键,可以省略,个人就是习惯性的把参数传给了它,导致了现在的错误.

}


解决方法之一:jsp页面 把speaker_id换成speaker.id   

(把外键属性名换成 外键对象名.外键id)


可能原因之一:

这是因为我们的jsp页面的外键的值保存到了当前的对象的外键属性中了,而不是外键对象的属性id中。

这样 save方法执行的时候 按照hbm.xml配置文件来设置参数的时候会出错(因为hbm.xml只能写一个column=”speaker_id”,而又必须写在<many to one>.所以它会把其他列的值成功映射上去,而这个外键属性要映射到外键中  会到体现它多对一关系的类名.外键对象.id中找值 )


个人理解,仅供参考!




阅读全文
0 0