google app qidiruvi java jpa biridan ko'pchiligiga olib tashlash

Google App vositachiligida java jpa bilan ko'plab munosabatlar, men qanday qilib bolalar elementlarini olib tashlashim mumkin. Misol uchun

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;
.
.
.
}

Men yaratdim

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

va hozirda ikkala bolani ham, ikkalasini ham olib tashlashni istayman va yangi bolani qo'shmoqchiman 3

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

Lekin men yana bir ota-onani oldimga kelganimda, 3 nafar bola bor, lekin faqatgina 3 yosh bola emas.

Meni biron bir iltimos qilavering.

Rahmat, Ramesh.V

5

2 javoblar

Ehtimol qilish

parent.getChilds().clear();

chunki bu ro'yxatni o'chirish va qayta tiklashni saqlaydi va ba'zi GAE muammolari bo'yicha ishlashning qo'shimcha samarasiga ega bo'lishi mumkin. PS. "bola" ning ko'pligi "bolalar" dir!

0
qo'shib qo'ydi
Kechirasiz, ishlamayapman ... lekin yangi bo'sh ob'ektni tozalash yoki ochish ham ikkalasida ham ishda hech qanday farq yo'q.
qo'shib qo'ydi muallif Ramesh V, manba

O'zaro munosabatlarni egalik tomondan olib tashlashga harakat qilishingiz mumkin - bu holda bolali # ota-ona. Shunday qilib, ota-ona to'plamidagi har bir bola uchun quyidagilarni bajaring: pastki elementni olib tashlash yoki yuqori elementni nolga sozlash. Bir narsa:

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

children.clear();
children.add(new Child(3));
0
qo'shib qo'ydi