Native Stored Proc v / s Hibernate - PullRequest
       16

Native Stored Proc v / s Hibernate

1 голос
/ 15 сентября 2009

Я новичок в Hibernate.

Я работаю над уровнем доступа к данным облачной службы.

В настоящее время мы используем Hibernate для сопоставления OR и в качестве слоя доступа к данным, используя аннотации Hibernate. Но в последнее время меня попросили реализовать слой Hibernate / Data Access таким образом, чтобы мои хранимые процедуры были на HQL, и мы можем в кратчайшие сроки изменить нашу БД и портировать весь код.

Самое близкое, что я могу подумать в этом отношении, - это использование именованных запросов, где хранимые процедуры находятся на стороне БД, а мой спящий режим разрешает вызовы хранимых процедур с использованием именованных запросов.

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

В настоящее время я использую Java, Hibernate и Mysql.

Может ли кто-нибудь проверить мои предположения и подтвердить или дать / предложить несколько лучших альтернатив.

Производительность и безопасность являются главными приоритетами.

Ответы [ 2 ]

1 голос
/ 15 сентября 2009

Поскольку синтаксический анализ и оптимизация операторов выполняются быстро в большинстве СУБД, я предпочитаю не использовать хранимые процедуры, если мое приложение является «владельцем» каталога (ов).

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

Случаи, когда я вижу преимущества хранимых процедур:

  • Я не являюсь владельцем базы данных. Доступ к данным обеспечивается разработчиками / сопровождающими базы данных (как вы часто найдете в Datawarehouses). Таким образом, хранимые процедуры являются интерфейсом к данным.
  • Операторы сложны, а среда выполнения непредсказуема или не должна влиять на мое приложение (например, запускать длительные транзакции или пакеты).

Надеюсь, это поможет вам с вашим решением.

1 голос
/ 15 сентября 2009

Я думаю, что изложенный вами подход великолепен.

Это именно то, что я бы сделал, если бы я был на вашем месте. (Я нахожусь на Hibernate при поддержке MySql, и я рассмотрел возможность сделать это при необходимости по соображениям производительности.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...