Я студент, изучающий Hibernate ORM. Извините за плохой английский.
Официальная документация Hibernate ORM представляет его как основу. проверьте эту документацию: «https://hibernate.org/orm/»
Однако по следующей ссылке утверждается, что Hibernate не является платформой. проверьте эту документацию: «https://docs.jboss.org/hibernate/orm/6.5/introduction/html_single/Hibernate_Introduction.html#persistence-contexts»
Я в замешательстве, что правильно.
Я думал, что существует инверсия управления, чтобы решить проблему несогласования импедансов.
Чтобы сохранить объект в таблице базы данных с помощью API JDBC, его необходимо преобразовать в структуру данных.
Однако точки зрения на объекты и структуры данных базы данных различны. Я понимаю это как проблему несоответствия импедансов. Чтобы решить эту проблему, разработчикам приходится писать много управляющего кода, который сложно поддерживать.
Я понимаю, что технология ORM возникла для решения проблемы несогласования импедансов. И я думаю, что управляющий код решения проблемы несоответствия импедансов перенесен на сторону ORM.
Итак, Независимо от того, что написано в документе. Я думаю, что Hibernate — это фреймворк. Пожалуйста, оставьте отзыв.





Если мы возьмем определение Framework из Википедии — да, Hibernate — это фреймворк, в котором присутствуют все четыре ключевые функции — IoC, поведение по умолчанию, расширяемость и неизменяемый код фреймворка.
Полагаю, вас озадачила эта часть документации:
Hibernate — это независимая от архитектуры библиотека, а не фреймворк. поэтому удобно интегрируется с широким спектром Java-фреймворков. и контейнеры.
Во-первых, прямо перед этим пунктом в документации есть оговорка, что это не факт, а всего лишь мнение. Я думаю, они хотели сказать, что Hibernate не является архитектурным фреймворком и отвечает только за уровень персистентности.
Во-вторых (на этот раз это мое личное мнение), любая система персистентности в любом случае влияет на всю архитектуру приложения, поскольку обеспечивает управление транзакциями, и это то, что вам нужно иметь в виду при реализации слоев поверх персистентности (например, уровня обслуживания). .