J'ai deux classes: Dépenses et Catégorie. Une dépense peut avoir plusieurs catégories. Je souhaite mettre en oeuvre l'enregistrement Cascade de toutes les catégories (enfants) avec Dépenses (parent). Mais impossible d'y parvenir.Sur enregistrement des dépenses persistantes, aucune entrée de catégorie n'est créée. S'il vous plaît laissez-moi savoir ce que je fais mal. Voici mes classes:JPA Cascade Persist ne fonctionne pas
@Entity
@Table(name="EXPENDITURE")
public class Expenditure {
private Long id;
@OneToMany(cascade={CascadeType.PERSIST,CascadeType.MERGE}, mappedBy="expenditure")
private Set<Category> associatedCategories = new HashSet<Category>();
public Expenditure() { }
@Id @GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="EXPENDITURE_ID")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public void addCategory(Category category)
{
this.associatedCategories.add(category);
category.setExpenditure(this);
}
}
@Entity
@Table(name="CATEGORY")
public class Category {
@Id @GeneratedValue
@Column(name="CATEGORY_ID")
private Long id;
private String name;
@ManyToOne(targetEntity=Expenditure.class)
private Expenditure expenditure;
public Category(){}
public Category(String name)
{
this.name = name;
}
public Category(String name,String description)
{
this.name = name;
}
@Column(name="NAME")
public String getName() {
return name;
}
public Expenditure getExpenditure() {
return expenditure;
}
public void setExpenditure(Expenditure expenditure) {
this.expenditure = expenditure;
}
Merci Satadru pour votre réponse .. J'ai été en mesure de résoudre mon problème en déplaçant l'annotation de l'identifiant au niveau Champ dans la classe Dépenses. Cela a fonctionné sans ajouter le JoinColumn (que je pense est facultatif). Cependant, je ne suis pas sûr de la raison !! – Sumit