将数据插入到另一个数据库中具有外键的表中

时间:2019-01-31 07:51:27

标签: spring-boot spring-data-jpa

我有一个表(t1),该表具有对另一个数据库中表(t2)的外键引用。 t1还具有另一个外键,该外键引用同一数据库中的表(t3)。 我在项目中使用spring boot,maven和JPA。我能够建立到2个数据库的连接。但是,当我尝试将数据插入t1时,它会在引用t2的外键上引发ConstraintViolation异常。

我尝试删除另一个外键,然后插入数据,但仍然失败。 仅当我从另一个数据库的表中删除外键约束时,才允许插入。 请提供解决方案,或者如果无法解决,请告诉我。

public class T1 implements Serializable {

  private static final long serialVersionUID = 1L;

  @Id
  @Column(name = "t1Id")
  private int t1Id;

  @Id
  @Column(name = "fkT3")
  private String fkT3;

  @Id
  @Column(name = "fkT2")
  private int fkT2;
// getters and setters
}


public class T2 implements Serializable {

  private static final long serialVersionUID = 1L;

  @Id
  @Column (name = "fk_T2")
  private int fkT2;

  @Column(name = "col2")
  private String col2;

//getters and setters
}


public class T3 implements Serializable {

  private static final long serialVersionUID = 1L;

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private int t3Id;

  @Column(length = 45)
  private String fkT3;

//getters and setters
}


public class PostServiceImpl {
  @Autowired
  private T1Repository t1Rep;

  @Autowired
  private T2Repository t2Rep;

  @Autowired
  private T3Repository t3Rep;

  public void insertData() {
    //do soemthing
    t1Rep.saveAll(t1DataList);
  }
}

0 个答案:

没有答案