如何以一对一的关系插入记录?
假设我有3个表:表A,表B,表C
我必须在那些表中插入一条记录,其中表A被引用为主键的主表。
让我们这样说:
tableB.PK = tableA.PK
tableC.PK = tableA.PK
现在,
当我在tableB或tableC中插入记录时,会发生错误:
Error Message: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_tableB_tableA"
但是当我在tableA中插入时,这是两个表的基础'主键,没关系,它会递增。
我如何插入记录?特别是在JPA。
答案 0 :(得分:11)
这里我的评论再次作为答案
因为你在tableB和tableC中有一个引用到tableA,你必须先插入tableA并检索生成的PK。然后,您可以使用检索到的ID插入任何其他表。对于JPA,请查看此处:How to get Id of last persisted entity using JPA
这是一个如何在sql server中实现这个的例子: http://sqlfiddle.com/#!3/a3f62/3
这是关系数据库和外键的基础,我没有读过wiki文章,但它必须提到相同的想法:http://en.wikipedia.org/wiki/Foreign_key