Witam posiadam pewien problem z ładowaniem obiektów, które posiadają w swoich zmiennych obiekty tego samego typu.
W skrócie mam stworzoną klase User, która posiada zmienną typu String,int no i ten nieszczęsny User.
@Data
public class User {
@BsonId
private final String name;
private final int age;
private User mother;
public User(String name, int age){
this.name = name;
this.age = age;
}
}
Dla przykładu stworzyłem 2 userow.
User son = new User("Son", 11);
User mother = new User("Mother", 30);
son.setMother(mother);
Wrzucam ich do bazy w postaci całego obiektu przerobionego na bson document z czego wychodzą mi takie dwa jsony
{
"_id": "Son",
"age": 11,
"mother": {
"_id": "Mother",
"age": 30
}
}
{
"_id": "Mother",
"age": 30
}
Oczywiście mogę załadować na początku mother wrzucić ten obiekt do mapki i potem przy pobieraniu son sprawdzić czy nie ma mother w mapce jeśli jest ustawić jeśli nie to dodać do mapki i ustawić.W tym rozwiązaniu następuje problem z kolejnością ładowania, gdyż co jeśli uznajmy nie załaduje mother a będę chciał załadować son.
Przy okazji w wypadku występuje duplikacja documentów (mother).
Sorry za zawiłość nie mam pojęcia jak lepiej mógłbym to opisać