связи base и дочка building.
вызываю toString у объекта base, base подтягивает bulding, а bulding имела id base и подтягивала base. забавно, что toString заставлял хибернейт ходить в базу и тащить building, хотя fetch стоит lazy. изменил toString (убрал связные поля(base и building) и проблема ушла (нашел тут решение https://stackoverflow.com/questions/54570757/stack-overflow-on-hibernate-caused-by-one-to-many-relationship), но появилась вторая НеБагАфича
вторая (неБагАфича): при маппинге json, я полагаю, юзается getter, setter что возвращает к проблеме 1, но без looping, маппинг также может пнуть хибернейт в базу за сущностью дочерней.
кидаю запрос entityManager.find(Starbase.class, id), а прилетает base с связной дочкой building.
есть на стаке (https://stackoverflow.com/questions/30082281/manytoonefetch-fetchtype-lazy-doesnt-work-on-non-primary-key-referenced-co), но я не знаю как сделать правильно, а не костыльно.
как решать вторую проблему элегантно и адекватно?
Привет, это поможет тебе конвертировать объект в Json только с теми полями, которые ты определишь... https://www.baeldung.com/jackson-json-view-annotation т.е. ставишь building на другой View, и когда мапишь - выбираешь через какое Views мапить объект
Спасибо, Дмирий, завтра буду изучать, а то уже у меня час ночи
Обсуждают сегодня