Mapowanie ormowych encji na modele, zależność kołowa

0

Dzień dobry,

W swoim programie posiadam dwa modele User i Room. Ponadto posiadam ich ormowe odpowiedniki (UserEntity + RoomEntity).
W UserEntity mam:

    public User toUser()
    public static UserEntity fromUser(User user)

Analogicznie w RoomEntity

Te obiekty mają zależność 1:N dwukierunkową (user ma pole room i room ma pole Set<User>)

W RoomEntity implementacja wygląda tak:

    public Room toRoom() {
        return new Room(name, maxUsers, users.stream().map(UserEntity::toUser).collect(Collectors.toSet()));
    }

W UserEntity tak:

 public User toUser() {
        return new User(nickname, ip, heartbeat, Option.of(room).map(RoomEntity::toRoom));
    }

Jak mapuje RoomEntity do Room to mam zależność kołową i robi się StackOverflow, jak takie coś rozwiązać?

3

Ja bym przekornie zapytał: po co ci ten hibernate w ogóle, skoro i tak mapujesz hibernatowe klasy na obiekty domenowe? Czemu nie zrobisz repozytorium które od razu wyciąga ci User i Room?
Jeśli chodzi o twój problem to z oczywistych względów nie da się tak zrobić w 1 kroku i musisz takie mapowanie przeprowadzić wieloetapowo.

0

Wyrzuciłem UserEntity i RoomEntity. Wyciągam z bazy po prostu User i Room.

1 użytkowników online, w tym zalogowanych: 0, gości: 1