Wpis z mikrobloga

#naukaprogramowania #java #spring #hibernate

W klasach powiązane klasy trzymać jako obiekty czy jako ID?

Mogę zrobić tak:

class MyClass {
OtherClass relatedOtherClass;
//...
}

Lub tak:

class MyClass {
long idOtherClass;
//...
}

Pierwsze rozwiązanie jest dla mnie wygodniejsze, bo mogę korzystać z tego powiązanego obiektu w każdej chwili. Ale przesyłam te obiekty JSON-em lub kolejką. Są duże i przesyłam je bardzo często. Niepotrzebnie zapycham to tymi dużymi powiązanymi obiektami (tam nie są już mi potrzebne, żeby w całości je tak często przesyłać, ID jest wystarczające).

Jak to rozwiązać?
- Dwa pola (obiekt i id) i ustawić, żeby obiekt się nie przesyłał (da się to zrobić adnotacjami w JSON, nie wiem jak z kolejkami)?
- Tylko pole z ID, a jak będzie mi potrzebny obiekt to korzystać tylko z gettera (który na podstawie ID sobie pobierze)?
- A może się da tylko jedno pole z obiektem, a ustawić, żeby automatycznie konwertowało na ID?
- Jakoś inaczej?
  • 2
  • Odpowiedz