Я работаю над API для доступа к данным, хранящимся в системе. Система содержит такие вещи, как люди, встречи и процедуры, связанные с этими встречами. Мое приложение будет только для чтения.
Я использую Spring w / RowMapper для создания таких объектов, как "Person
", "Appointment
" и "Procedure
". У меня есть DAO для каждого элемента. (т.е.: PersonDAO.getById()
, PersonDAO.getByName()
, ..).
Проблема заключается в том, что Appointment
имеет ссылку на Person
объект. В объекте Person
было бы неплохо иметь ссылку на назначения этого Person
, но если я начну их загружать, это станет циклической ссылкой.
Итак, я полагаю, мой вопрос - правильный способ справиться с этим, просто поместите ссылки (идентификаторы) в POJO, а затем попросите бизнес-уровень (?) Просто сделать правильные вызовы для получения информации? Или это нормально, чтобы каким-то образом передавать ссылку на DAO в реальном POJO, чтобы я мог лениво загружать объекты объекта при ссылке? Но тогда как вы справляетесь с циклической ссылкой? Когда у меня есть Person
, и я лениво загружаю все их встречи, с этими встречами также будет связан Человек. Когда я загружаю этот Person
, он потенциально может иметь информацию о различиях от Person
, для которого я загружаю встречи.
Person
(объект x) ленивая загрузка -> назначения могут лениво загружаться Person
(объект x ').
Поскольку Person
могло измениться к тому времени, когда я лениво загружал их встречи. Мне действительно нужен объект Person
в Appointment
для ссылки на тот же объект Person
.
Я поймал все на этом. Я знаю, что могу просто «заставить это работать», но я хочу попытаться найти хорошее решение. Я думал об использовании hibernate для этого, но подумал, что это действительно просто перебор. Может быть, это не так.