2011-11-20 72 views
0

我在刪除子實體時遇到了問題,這是給我以下例外 javax。 persistence.EntityNotFoundException:傳遞給persist的已刪除實體:[com.myproj.test.entity.XYZ#]。javax.persistence.EntityNotFoundException:已刪除的實體傳遞給persist:[com.disney.zeus.client.entity.MaterialAudioChannel#<null>]

父實體:

... 

public class ABC implements java.io.Serializable { 

... 

// it has a @oneToMany relationship with XYZ entity as specified below. 

@OneToMany(mappedBy = "abbc", cascade = CascadeType.ALL) 
private List<XYZ > xyzs; 

}

...

子實體: -

... 

public class XYZ implements java.io.Serializable { 

    ... 

    // and this has @manyToOne relation as below 

    @ManyToOne(fetch=FetchType.LAZY) 
    @JoinColumn(name="ABC_ID") 
    private ABC abc; 

    ... 

}

從服務CALSS IAM調用刪除方法通過傳遞實體實例來刪除,如下所示。

刪除(XYZ xyzs){

for(XYZ xyz :xyzs){ 

// i have the entityManger instance and calling remove 

entityManager..find(XYZ.class, xyz.getXyzId()); 

entityManger.remove(xyz); 

} 

}

現在它給我上面指定的異常。 請在這個問題上幫助我。 在此先感謝。

Surendar Reddy。 K

回答

0

您只需從父集合中刪除XYZ。 ABC中有XYZ列表。 所以刪除:

  1. 從db中獲取XYZ。
  2. 從db獲取restective(與XYZ有關)ABC。
  3. 從ABC中的列表中刪除XYZ。
  4. 刪除XYZ。

它會正常工作