Google App Engine Java JPA адзін да многіх Выцягнеце

У Google App Engine Java 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.

Ці можа адзін ласка, кіраўніцтва мяне.

дзякуй, Ramesh.V

5

2 адказы

Можа быць, зрабіць

parent.getChilds().clear();

так што эканоміць выдаленне і аднаўленне спісу, і можа мець дадатковае перавага ў рабоце вакол нейкага пытання GAE. PS. множны лік ад «дзіцяці» гэта «дзеці»!

0
дададзена
На жаль, не працуе ... але ачыстка або усталяваўшы новы пусты аб'ект і з'яўляюцца некаторыя з іх не мае ніякага значэння ў працы ...
дададзена аўтар Ramesh V, крыніца

Вы можаце паспрабаваць выдаліць адносіны з боку заможных - у гэтым выпадку Child # з бацькоў. Такім чынам, для кожнага дзіцяці ў бацькоўскай калекцыі паспрабуйце альбо: выдаленне даччынага элемента або налады бацькоўскага элемент Null. Нешта накшталт:

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

children.clear();
children.add(new Child(3));
0
дададзена