本文主要是介绍关于hibernate的关联外键生成以及外键属性列的正确插入即:解决外键插入时,在关联表中除了外键列为空,其它属性均正常级联保存,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
关于hibernate的关联外键生成以及外键属性列的正确插入即:解决外键插入时,在关联表中除了外键列为空,其它属性均正常级联保存
其实解决办法十分简单:
首先确保你能够级联保存数据,当然除了关联表的外键列,我们就是为了解决这个问题
首先分析:为什么不能插入数据的外键?是因为关联表对应的另一个表对象为空,所以取不到其id作为外键参照
而且如果你刚好设置了外键不空,那么你将连关联表其它数据也插入不了,会一直报:sql语句发送异常,因为你违反了外键限制规则完整性
那么解决方法就是:将你映射的关联表实体类对象的级联表对应的字段设置为你需要的值
举例如下:
//文章与文章标签相互关联,为一对一关系
//即:文章对象有标签对象,标签对象也有文章对象
//这样他们就有了参照关系,可以正常执行外键插入了
数据库插入异常:
测试代码:**//文章标签被设置为文章属性,且反之亦然** article.setTag(tag); tag.setArticle(article);
其实最终一句话:
就是要设置双向关联:
两边都能知道对方信息,这样才能参照
这篇关于关于hibernate的关联外键生成以及外键属性列的正确插入即:解决外键插入时,在关联表中除了外键列为空,其它属性均正常级联保存的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!