有 Java 编程相关的问题?

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

java OneToMany:hibernate尝试使外部引用无效,而不是删除整个子对象

我有一个包含元素列表的实体“BigList”:

  @OneToMany( fetch = FetchType.LAZY, orphanRemoval=true )
  @Cascade( { CascadeType.ALL } )  
  @JoinColumn( name = "ID_LIST", referencedColumnName="ID", updatable=true, insertable=true )
  @OrderBy( value="position asc")
  List<BigListElem> elements;

而BigListElem有这样的参考:

  @ManyToOne( optional=false )
  @NotFound( action=NotFoundAction.EXCEPTION )
  @JoinColumn( name="ID_LIST", nullable=false, updatable=true, insertable=true  )
  private BigList list;

现在,如果我删除列表中的一个元素并调用merge()方法(从而进行更新),我会得到以下异常:

impossible update ("DBNAME"."BIG_LIST_ELEM"."ID_LIST") to NULL

换句话说,它没有删除子级,而是尝试将外部引用设置为null,这会导致异常,因为“nullable”设置为false。 这是正确的,因为外部引用不能为空。。。问题是,我不是要求将这个引用设置为null,而是删除整个元素

为什么


共 (0) 个答案