google двигун додаток java jpa один до багатьох видалити

У движку Google App ява jpa відносини один до багатьох, як я можу видалити дочірні елементи. Наприклад

Class Parent{
  //key defined here

   @OneToMany(cascade=CascadeType.ALL, mappedBy="parent")
   private List childs = null;
.
.
.
}

Class child{
//key defined here too
@ManyToOne
private Parent parent;
.
.
.
}

Я створив

Parent parent=new Parent()
parent.getChilds().add(new Child(1));
parent.getChilds().add(new Child(2));
//save parent 
.
.

і тепер я хочу видалити як дитину 1 і 2, так і додати нову дитину 3

Parent p=//getParent
p.setChilds(new ArrayList())//remove all older childs
parent.getChilds().add(new Child(3));//adding new child 3
.
.

Але коли я знову отримав одного і того ж батька, у мене є всі 3 дитини, але не тільки дитина 3.

Чи може хто-небудь, будь ласка, направляй мене.

Дякую, Рамеш.В.

5

2 Відповіді

Може бути

parent.getChilds().clear();

оскільки це зберігає видалення та відтворення списку, і може мати додаткову користь при вирішенні проблеми GAE. PS множина "дитина" - це "діти"!

0
додано
Вибачте, не працюючи ... але очищення або встановлення нового порожнього об'єкта обидва є незмінними у роботі ...
додано Автор Ramesh V, джерело

Ви можете спробувати вилучити відносини з власною стороною - в цьому випадку Child # parent. Тому для кожної дитини у батьківській колекції спробуйте: видалити дочірній елемент або встановити батьківський елемент на нуль. Щось на зразок:

Parent p = //getParent
List children = p.getChildren();
for (Child c : children) {
    c.setParent(null);
}

children.clear();
children.add(new Child(3));
0
додано
ІТ КПІ - Java
ІТ КПІ - Java
436 учасників