Wpis z mikrobloga

Jak mam dwie klasy Entity powiązane ze sobą dwukierunkową relacją ManyToMany np. User i Discount to dobrym pomysłem będzie dorobienie pola w klasie User: Map?

Potrzebuję wiedzieć czy jest aktywna zniżka czy nie. A jak zmienię pole isActivated w bazie na dowolnym obiekcie Discount to będzie to zmiana widoczna dla wszystkich użytkowników, którzy korzystają z tej zniżki, a ja chcę tylko dla jednego usera. ( ͡° ʖ̯ ͡°)

Pobierz takiMirek29 - Jak mam dwie klasy Entity powiązane ze sobą dwukierunkową relacją ManyT...
źródło: comment_1672406366yzXDsx5yplhxx5HKFEldfe.jpg
  • 9
@takiMirek29: Wydaje mi się, że mocno przekombinowałeś. Najlepsze są luźne powiązania. Oczywiście, chcesz, by wiedzieć jakie zniżki mają, ale zabierasz się do tego bardzo mocno komplikując model, wprowadzając zbyt ścisłe zależności między dwoma zupełnie od siebie niezależnymi encjami.
By wiedzieć, jakie zniżki mają użytkownicy, wystarczy repozytorium, które Ci to powie, na podstawie innego zapytania.
Rozwiązuje to problem przedawnienia zniżek, dezaktywacji ich itp. - nie będą zależne od cyklu życia użytkownika.

Zadaj
@draxgar: Czyli zrobić tabelę userid : discountId i nie robić żadnych mappingow w klasie i wywalic kolekcje users z Discount i discounts z User? Zrobiłem na razie tak jak w artykule, który ks19 podklinkował 2 posty wyżej.