Могу ли я использовать hibernate для приложений, ориентированных на данные? - PullRequest
1 голос
/ 12 июня 2011

Я провожу учебник по hibernate , где говорят, что hibernate не подходит для приложений, ориентированных на данные.Я очень впечатлен «объектно-ориентированной структурой», которую она дает программе, но мое приложение ориентировано на данные (оно получает и обновляет огромное количество записей. Но я не использую хранимые процедуры).Не могу ли я использовать hibernate? Есть ли какие-либо оболочки, написанные поверх hibernate, которые я могу использовать для своего приложения? Любая помощь приветствуется.

Ответы [ 3 ]

2 голосов
/ 12 июня 2011

Я не уверен в конкретном значении фразы data centric. Разве не все приложения баз данных data centric? Однако, если вы обрабатываете тонны данных, Hibernate может оказаться не лучшим выбором. Hibernate лучше всего представляет объектные модели, сопоставленные с базой данных, и он может играть роль в любом приложении, но для выполнения задач ETL (извлечения / преобразования / загрузки) вам может понадобиться написать очень эффективный SQL вручную.

1 голос
/ 12 июня 2011

Есть много преимуществ использования Hibernate, когда вы, как разработчик, получаете правильную объектную модель, есть большая привлекательность во взаимодействии с базой данных через объекты, но на практике я обнаружил, что изначально Hibernate великолепен, но становится очень неприятным, когда выстолкнуться с такими проблемами, как производительность и поиск неисправностей.

Когда дело доходит до решения относительно уровня DA (доступа к данным), я задаю себе этот вопрос.Я пишу приложение, которое имеет требование для запуска других баз данных?

Если ответ положительный, тогда я рассмотрю (ORM) как Hibernate.Если его нет, я обычно просто использую JDBC через Spring.

Мне кажется, что взаимодействие с базой данных через JDBC намного более прозрачно и позволяет легче находить ошибки и настраивать производительность.

1 голос
/ 12 июня 2011

В принципе вы можете, но это имеет тенденцию быть медленным.Hibernate более или менее создает объект для каждой строки, извлеченной из базы данных.Если вы делаете это с большими объемами данных, производительность серьезно падает.Также обновления во многих строках, использующие одно обновление, имеют только очень базовую поддержку.

Оболочка не поможет, по крайней мере, с проблемой создания объекта.

...