有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaSpring容器作为新实体插入,而不是存储在表中

我有两个,一个,另一个 这种关系是

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);

执行此语句后,spring容器插入fehlerfallVariantBE(父实体)会导致fehlerfallVariantBE表(父实体)的PK冲突

我不明白为什么会这样?因为这将在表中保存子实体FehlerFallsVariantbe实体,并在表中设置fehlerfallVariantBE id


共 (0) 个答案