google қолданба java jpa біреуі көп жою үшін

Google App машинасында 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 бала ғана емес.

Маған кез келген адам басшылық жасай алады.

Рахмет, Рамеш В.

5

2 жауаптар

Мүмкін, жасаңыз

parent.getChilds().clear();

себебі бұл Тізімді жойып, қайта жасайды және кейбір GAE мәселесі бойынша жұмыс істеудің қосымша пайдасы болуы мүмкін. PS. «бала» деген көпше - «балалар»!

0
қосылды
Кешіріңіз, жұмыс істемеймін ... бірақ жаңа бос объектіні тазарту немесе орнату екіеуі де жұмыс істемейді ...
қосылды автор Ramesh V, көзі

Сіз қарым-қатынасты өзіңіздің тараптан жоюға тырысыңыз - бұл жағдайда # ата-анасы. Сондықтан ата-аналар жинағындағы әрбір бала үшін келесі әрекеттерді орындап көріңіз: бала элементін жою немесе басты элементін нөлге теңшеу. Бір нәрсе:

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

children.clear();
children.add(new Child(3));
0
қосылды