Intro
Я - самый новый парень в моей команде разработчиков. В первую очередь мы делаем веб-разработку Java и работаем с базами данных Oracle, но в редких случаях мы работаем с другими RDMS. В интересах расширения моих профессиональных знаний и изучения более современных методологий я решил изучить Hibernate.Должна ли моя команда разработчиков использовать Hibernate?
До сих пор я не уверен, что это хорошо подходит для нашей команды, но я не могу сказать, связано ли это с тем, что Hibernate законно не соответствует нашим потребностям или потому, что мы следуем таким плохим практикам, что Hibernate «не желает» Приходите.
Например, практически все наше взаимодействие с базой данных осуществляется через стандартные JDBC CallableStatements и хранимые процедуры. Мы перебираем ResultSets и помещаем их в beans/pojos для использования веб-приложения. Hibernate, из того, что я могу сказать, вместо этого любит точно моделировать таблицы (@Entity
, @Table
) и их столбцы. Для простых запросов SELECT
это более простой подход. Тем не менее, для разработки работы с БД (думаю, анализируя аналитические данные по необработанным данным) я либо сильно зациклился на манипуляции данными в своем Java-коде (и отказался от сущностных классов, которые в конечном итоге отображали таблицы), либо вызывал хранимые процедуры через уродливый session.doWork
, который, кажется, побеждает весь смысл использования Hibernate для начала.
Предположения Я понятия не имею, о: Моя команда сказала мне, что на раннем этапе они думают, что его лучше делать «тяжелую» в базе данных (т.е. хранимой процедуры), а не в приложении сервера (т.е. Java), и я понятия не имею, правильны они или нет. Если они правы, то почему существуют ORM, подобные Hibernate?
Кроме того, у меня есть heard, что Hibernate имеет довольно жесткую кривую обучения, но я чувствую, что мне не хватает цели целиком. Предполагается ли, что таблицы базы данных точно имитируют данные, необходимые в веб-приложении? Является ли наша методология проектирования еще далеко?
Наконец, я знаю, что хранимые процедуры против ORM - это горячая topic, но эта тенденция, похоже, находится на стороне «ORM». Зачем?
Т.Л., др Hibernate появляется только помочь нашей потребительной случай в самых тривиальных случаев, с кучей сложной конфигурации и дополнительных ресурсов в качестве компромисса. Что мне не хватает?
Пожалуйста, прочтите @ http://stackoverflow.com/questions/448684/why-should-you-use-an-orm – Amogh
Hibernate отлично подходит для простых вещей. Для более сложных вещей проблема несоответствия объектно-реляционного импеданса становится проблемой. РСУБД действительно хороши в работе с типами РСУБД. Java-разработчики стремятся к ORM, потому что они разработчики Java, а не разработчики SQL. –
Этот вопрос требует ответа на основе мнений, поэтому я голосую, чтобы закрыть его. Ответ почти полностью зависит от команды. Похоже, у вас в команде есть несколько разработчиков database_programmers ™, что практически гарантирует некоторую враждебность по отношению к новой технологии ORM. Как правило, это, как правило, намного больше проблем людей, чем техническая проблема. – dasblinkenlight