Мне кажется, что внедрение инструмента ORM должно сделать вашу архитектуру более чистой, но для эффективности я обнаружил, что иногда обхожу ее стороной и перебираю набор результатов JDBC. Это приводит к несогласованному путанице артефактов вместо более чистой архитектуры.
Это потому, что я применяю инструмент в недопустимом контексте или он глубже?
Когда вы можете / должны идти на попятную с подходом ORM?
Любое понимание будет с благодарностью.
Немного фона:
В моей среде у меня около 50 клиентских компьютеров и 1 достаточно мощный SQL Server.
У меня есть настольное приложение, в котором все 50 клиентов постоянно получают доступ к данным.
Модель данных проекта прошла ряд реорганизаций по различным причинам, включая ясность, эффективность и т. Д.
История моей модели данных
- JDBC звонит напрямую
- DAO + POJO без отношений между Pojos (в основном это JDBC).
- Добавлены отношения между POJO, реализующими отложенную загрузку, но просто скрывающими вызовы между DAO
- Вскочил на подножку Hibernate, увидев, как «просто» он сделал доступ к данным (он сделал тривиальные отношения между POJO) и потому, что он может уменьшить количество обращений к базе данных при работе со многими связанными сущностями.
- Поскольку это было настольное приложение, держать сеансы открытыми в течение долгого времени было кошмаром, поэтому это привело к целому ряду проблем
- Вернемся к частичному подходу DAO / Hibernate, который позволяет мне делать прямые вызовы JDBC за занавесом DAO, в то же время используя Hibernate.