弹簧容器作为新实体插入而不是存储在表

时间:2015-08-26 12:07:07

标签: java spring jpa eclipselink

我有两个BE FehlerfallSgVariantBE,另一个是FehlerfallVariantBE 关系是

 public class FehlerfallSgVariantBE  implements Serializable {

 @ManyToOne
 @JoinColumn(name = "FEHLERFALL_VARIANT_ID")
 private FehlerfallVariantBE fehlerfallVariantBE;
}

public class FehlerfallVariantBE  implements Serializable, Cloneable {

  @OneToMany(mappedBy = "fehlerfallVariantBE", fetch = FetchType.LAZY, cascade   = CascadeType.MERGE)
  private Collection<FehlerfallSgVariantBE> fehlerfallSgVariantBECol = new   ArrayList<FehlerfallSgVariantBE>();

}

我的方法用@Transactional注释。 在我的方法中,我保存FehlerfallSgVariantBE,同时保存我设置FehlerfallVariantBE对象,如

fehlerfallSgVariantBE.setFehlerfallVariantBE(fehlerfallVariantBE); 

// fehlerfallVariantBE is already saved in DB, which has Id also.

insert(fehlerfallSgVariantBE);

执行此语句后,弹簧容器插入fehlerfallVariantBE(父实体)会导致fehlerfallVariantBE表(父)的PK违规。

我不明白为什么要插入?因为这应该在表中保存子实体fehlerfallSgVariantBE实体并在表中设置fehlerfallVariantBE id。

0 个答案:

没有答案