У меня есть проект, который использует Spring и разбит на пару десятков DAO и связанных DTO. Я использую JdbcTemplate, но не намного, так как именно уровень абстракции меня устраивает.
В настоящее время я выполняю ленивую загрузку своих DTO, помещая некоторый довольно волосатый код в их получатели.
Базовая базовая логика:
1. Если поле не нулевое, верните его значение и выйдите
2. Свяжитесь с соответствующим DAO и получите соответствующие DTO.
3. Храните их до следующего раза.
Он работает отлично, за исключением того, что мои скромные DTO связаны с целой кучей DAO и не так уж POJOey.
Другой запах кода появляется, если я помещаю логику в DAO, поскольку она будет обрабатывать как CRUD для своих DTO, так и Lazy Loading, и, насколько я понимаю, объекты должны нести одну ответственность.
Я надеюсь, что существует относительно простой подход Spring, который я могу использовать для внедрения объекта Lazy Loader между DAO и DTO, чтобы достичь этого, но любое другое решение будет работать для меня.
Есть идеи?