javax.persistence.EntityNotFoundException: удаленная сущность передана для сохранения: [com.disney.zeus.client.entity.MaterialAudioChannel # <null>] - PullRequest
0 голосов
/ 20 ноября 2011

У меня проблема при удалении дочерних сущностей, это дает мне следующее исключение javax.persistence.EntityNotFoundException: удаленная сущность передана для сохранения: [com.myproj.test.entity.XYZ #].

родительский объект:

...

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;

  ...

}

отservice calss iam вызывает метод delete, передавая экземпляр объекта для удаления, как показано ниже.

delete (XYZ xyzs) {

 for(XYZ xyz :xyzs){

 // i have the entityManger instance and calling remove

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

 entityManger.remove(xyz);

 }

}

теперь он дает мневыше указанного исключения.Помогите любому помочь мне в этом вопросе.Заранее спасибо.

Сурендар Редди.K

1 Ответ

0 голосов
/ 24 июня 2012

Вам нужно удалить XYZ только из родительской коллекции. У вас есть список XYZ в ABC. Итак, для удаления:

  1. получить XYZ из БД.
  2. получить восстановительный (связанный с XYZ) ABC из базы данных.
  3. удалить XYZ из списка в ABC.
  4. удалить XYZ.

Будет работать нормально

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...