Гибернация и использование ресурсов - PullRequest
1 голос
/ 04 июня 2011

У меня в офисе обсуждали, использовать ли Hibernate или нет.В настоящее время наш код использует чистые операторы jdbc и sql для получения необходимых нам данных.Как вы можете себе представить, это усложняет поддержку нашего кода.Я предложил переключиться на Hibernate, чтобы наш код выглядел и работал лучше.Тем не менее, наше приложение должно иметь высокую производительность (с точки зрения использования времени и памяти).Мои коллеги продолжали спорить, что переключение на Hibernate заставит нас извлекать ненужные данные, поэтому наше приложение будет работать медленнее и потреблять больше оперативной памяти.

Это правда?Есть ли уловки, которые мы могли бы использовать?Могу ли я использовать аргументы в обсуждении с моими коллегами?

Спасибо!

1 Ответ

5 голосов
/ 04 июня 2011

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

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

  • EAGER - выбор поля при загрузке компонента
  • LAZY - выбор поля только при использовании поля

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

Если у вас есть веб-приложение и огромные графы объектов, это будет большим преимуществом, если вы используете JPA / Hibernate и, например,что-то вроде SEAM, таким образом, имеет все объекты под управлением диспетчера сущностей (даже в ваших управляемых bean-компонентах JSF).Там вам не нужно заботиться о какие поля в вашем графе объектов действительно требуются, и поэтому вам не нужно тратить ни одной строки кода в этом вопросе.

Но если выНапример, проведите научные или финансовые расчеты, и, конечно, быстрее получите все, что вам нужно, с помощью настраиваемых (и больших, сложных и сложных в обслуживании) операторов SQL.Для своих разработок я использую JPA (и в бэкэнде Hibernate), если это возможно.Более чистый код важнее для нас, чем несколько микросекунд ускорения вычислений.

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