插入一对一的关系

bpu*_*lan 11 sql database sql-server jpa

如何以一对一的关系插入记录?

假设我有3个表:表A,表B,表C.

我必须在那些表中插入记录,表A被引用为主键的主表.

让我们这样说:

tableB.PK = tableA.PK
tableC.PK = tableA.PK
Run Code Online (Sandbox Code Playgroud)

现在,

当我在tableB或tableC中插入记录时,会发生错误:

Error Message: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_tableB_tableA"
Run Code Online (Sandbox Code Playgroud)

但是当我在tableA中插入时,这是两个表的主键的基础,它是正常的,它会递增.

我如何插入记录?特别是在JPA.

  1. 我是否需要首先插入tableA然后插入其他?(只是这样做,它不起作用)
  2. 我是否需要同时在表格中插入数据?(怎样?在JPA中会很好)

det*_*ail 12

这里我的评论再次作为答案

因为你在tableB和tableC中有一个引用到tableA,你必须先插入tableA并检索生成的PK.然后,您可以使用检索到的ID插入任何其他表.对于JPA,请看这里:如何使用JPA获取最后一个持久化实体的Id

这里有一个如何在sql server中实现这个的例子:http: //sqlfiddle.com/#!3/a3f62/3

这是一个基本的关系数据库和外键,我没有阅读维基文章,但它必须提到相同的想法:http://en.wikipedia.org/wiki/Foreign_key