Bonjour,

Je souhaiterai sauvegarder le parent ainsi que ces fils un seul opération : la sauvegarde du parent

Parent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
@javax.persistence.Table(name = "PARENT")
@Entity
public class PARENT {
  private Integer id;
 
  @javax.persistence.Column(name = "ID")
  @Id
  @GeneratedValue(strategy=GenerationType.AUTO)
  public Integer getId() {
    return id;
  }
 
  public void setId(Integer id) {
    this.id = id;
  }
 
  private Collection<Child> children;
 
  @OneToMany(mappedBy = "parent", fetch = FetchType.EAGER, cascade = {CascadeType.ALL})
  @Cascade({org.hibernate.annotations.CascadeType.ALL})
  public Collection<Child> getChildren() {
    return children;
  }
 
  public void setChildren(Collection<Child> children) {
    this.children = children;
  }
}
Fils
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@javax.persistence.Table(name = "CHILD")
@Entity
@IdClass(Child.ChildId.class)
public class Child {
  private String childId1;
 
  @Id
  public String getChildId1() {
    return childId1;
  }
 
  public void setChildId1(String childId1) {
    this.childId1 = childId1;
  }
 
  private Parent parent;
 
  @ManyToOne
  @javax.persistence.JoinColumn(name = "PARENT_ID", referencedColumnName = "ID")
  public Parent getParent() {
    return parent;
  }}
Maintenant j'aimerai sauvegarder en une fois du style ci-dessous :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
Parent parent = new Parent();
 
    Child child = new Child();
    child.setChildId1("a");
    ArrayList<Child> children = new ArrayList<Child>();
    children.add(child);
 
    parent.setChildren(children);
    parent.setValue("value");
 
    parentDao.save(parent);
D'avance merci pour votre aide