Mam następującą sytuację. Trzy klasy:
-Training
@OneToMany(mappedBy = "training", cascade=CascadeType.ALL ,fetch = FetchType.EAGER)
@Fetch(value = FetchMode.SUBSELECT)
@JsonManagedReference(value="act-training")
private List<Activity> activities;
-Activity
@OneToMany(mappedBy = "activity", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@Fetch(value = FetchMode.SUBSELECT)
@JsonManagedReference(value="act-series")
@Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE})
private List<Series> series;
-Series
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "id_activity")
@JsonBackReference(value="act-series")
private Activity activity;
Chcę zrobić tak, żęby po zapisie aktywności, zapisywały się odpowiednie serie oraz trening co zresztą uzyskałem działając w ten sposób. Niestety aktywność zapisuje się dwukrotnie. Jak tego uniknąć? Aktywność zapisuje się przy zapisie treningu i drugi raz ta sama aktywność zapisuje się przy wprowadzeniu do bazy danej serii. Chciałbym żeby przy zapisie serii dana aktywność nie zapisywała się dwukrotnie. Ewentualnie jakoś się update'owała. Mogę to jakoś osiągnąć poprzez zmianę CascadeType? Czy jakoś inaczej skonfigurować mam te klasy? ;)
karolinaa