Ejb против Hibernate
Чтобы попасть в EJB, хорошо понять фон, откуда он исходит. Существует два типа бинов сущностей. Это CMP и BMP. CMP относится к персистентности, управляемой контейнером, а BMP относится к персистентности, управляемой бином. EJB специально используется для формулирования и сериализации объектов при работе с реляционными базами данных в SQL.
Когда начинается разработка сложного приложения, оно начинается с моделирования. Классы и объекты предпочтительнее использовать над таблицами, так как они имеют сложные взаимосвязи, которые могут вызвать множество проблем, если не будут реализованы должным образом. По сути, это означает, что мы имеем дело с системой, которая использует дизайн мышления в объектах, а не в таблицах. Использование реляционных баз данных довольно быстро и проверено временем. Это по сравнению с сериализацией объектов экономит время, поскольку сериализация сложных объектов является очень медленным процессом. Использование технологии реляционных баз данных является быстрым и проверенным временем и популярным среди многих разработчиков, и поэтому является предпочтительным.
Можно просто иметь дело с таблицами в разработке и использовать сессионные компоненты в манипулировании данными и чтении данных. Насколько это возможно, его практичность невозможна, особенно когда речь идет о действительно сложных проектах с использованием вышеуказанного метода. Это основа, которая следует за использованием объектов EJB в EJB.
CMP в EJB1 был разработан, чтобы быть подходящим для использования с простыми таблицами, которые не имеют сложной связи с другими таблицами. Использование CMP позволяет избежать ссылок на базовую базу данных. Фактически это означает, что он более переносим и блокировка поставщика не происходит. EJB 1 также сохраняет данные в объектных базах данных помимо реляционных баз данных.
EJB 2.0 имеет революционный дизайн, направленный на улучшение общей функциональности. Основным изменением является формат, предлагаемый для написания CMP. Он обеспечивает отношения, а также предлагает использовать простой язык запросов, который называется EBJ-QL. Этот язык направлен на минимизацию сетевого трафика путем вызова бина сущности в качестве сеансового бина.
Hibernate, с другой стороны, представляет собой инструмент ORM, который не имеет крутой кривой обучения, которая является общей для EJB, и не так подвержен ошибкам, как EJB. Hibernate является предпочтительным из-за его гибкости, что позволяет сервлетам и JSP его использовать. Hibernate построен в соответствии со спецификацией J2EE, что делает его применимым в большинстве приложений, которые будут иметь разработчики. Hibernate - это специальный инструмент ORM, так как его можно использовать не только в EJB-контейнерах, но также в автономных контейнерах и веб-контейнерах. Это главное отличие EJB от Hibernate. Поэтому разработка с Hibernate намного проще и менее сложна, чем использование EJB.
Hibernate, по-видимому, более популярен среди пользователей среды J2EE, и если EBJ продолжит разработку сложных функций, с которыми пользователям придется знакомиться, Hibernate станет доминирующей в этой области, и EJB может оказаться заблокированным На данный момент J2EE не связывается с большинством разработчиков, нацеленных на рынок..
Резюме
EJB - это объектный компонент, который специально используется для формулировки объекта
Существует возможность использования таблиц и сессионных компонентов при чтении и манипулировании данными, хотя это не практично
EBJ предоставляет относительно простой язык запросов для разработки, называемый EJB-QL
EBJ подвержен ошибкам
Hibernate относительно прост для понимания и реализации
Hibernate не так подвержен ошибкам, как EJB