Reputation: 6236
I have a many-to-many relationship and i mapped it like this
FournisseurActivite
, Activite
, Fournisseur
FournisseurActivite.java :
@Entity
@Table(name = "fournisseur_activite", catalog = "ao")
public class FournisseurActivite implements java.io.Serializable {
private Integer idFournissuerActivite;
private Activite activite;
private Fournisseur fournisseur;
...
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ID_FOURNISSUER", nullable = false)
public Fournisseur getFournisseur() {
return this.fournisseur;
}
...
}
Fournisseur.Java
@Entity
@Table(name = "fournisseur", catalog = "ao")
public class Fournisseur implements java.io.Serializable {
...
private Set<FournisseurActivite> fournisseurActivites = new HashSet<FournisseurActivite>(0);
...
@OneToMany(fetch = FetchType.LAZY, mappedBy = "fournisseur")
public Set<FournisseurActivite> getFournisseurActivites() {
return this.fournisseurActivites;
}
...
}
My problem is when execute this code below nothing happened to the table FournisseurActivite
no record was added !! i put just the part where i get the error everything else get saved normally in database
fournisseur.getFournisseurActivites()
.add(new FournisseurActivite(activite,fournisseur));
fournisseurrespository.save(fournisseur);
Upvotes: 0
Views: 62
Reputation: 5264
You need to add cascade
merge
and persist
option to OneToMany
on getFournisseurActivites()
, like this
@OneToMany(fetch = FetchType.LAZY, mappedBy = "fournisseur", cascade = {CascadeType.MERGE, CascadeType.PERSIST} )
public Set<FournisseurActivite> getFournisseurActivites() {
return this.fournisseurActivites;
}
Upvotes: 1