обычный jdbc и спящий - PullRequest
       1

обычный jdbc и спящий

2 голосов
/ 27 октября 2010

У меня есть проект, работающий в течение нескольких лет, и он использует простой JDBC.

Теперь мне нужно реализовать небольшой модуль, для которого я рассматриваю Hibernate.Я настроил Hibernate (hibernate-cfg.xml), и он запущен и работает.

Поэтому у меня есть свойства БД, определенные в двух местах: oracle-ds.xml и hibernate-cfg.xml

  1. Можно ли смешивать JDBC и Hibernate в одном приложении, если нет, в чем проблемы?
  2. Нужно ли настраивать «пул соединений» в конфигурации Hibernate, а также в oracle-ds.xml (приложение JBossсервер)?
  3. Я думал о настройке гибернации с использованием JNDI, но для этого требуется mbean, HAR - дополнительная работа, и этот новый модуль будет использоваться редко.ИЛИ Должен ли я сделать это как службу JBoss, чтобы пул соединений обрабатывался контейнером?
  4. Я могу использовать простой JDBC, но команда хочет попробовать Hibernate, и если все работает нормально, мы рассматриваем возможность использования Hibernate fullвремя для следующего проекта.

Ответы [ 2 ]

1 голос
/ 27 октября 2010

Можно ли смешивать jdbc, hibernate в одном приложении, если нет, в чем проблемы?

Это выполнимо, но вы должны принять некоторые меры предосторожности:

  • Вы не можете легко смешивать обработанные объекты JDBC POJO в графе обработанных объектов Hibernate (поэтому попробуйте использовать Hibernate для самых глубоких объектов в графе или для полностью спящих графов).
  • Полагаю, у вас есть какой-то механизм параллелизма, используйте его для JDBC и Hibernate (то есть увеличьте столбец той же версии из JDBC и Hibernate).
  • Если вы сконфигурируете Hibernate для использования кэша 2-го уровня, Hibernate не будет знать об изменениях, внесенных без использования его API (поэтому вам, возможно, придется реализовать какой-то механизм удаления).

Нужно ли настраивать «пул соединений» в конфигурации гибернации, а также в oracle-ds.xml

Я бы настроил Hibernate на использование пула соединений с сервером приложений (см. Свойства источника данных Hibernate ).

Я думал о настройке режима гибернации с использованием JNDI, но для этого требуется mbean, HAR - дополнительная работа, и этот новый модуль будет использоваться редко. ИЛИ Должен ли я сделать это как службу jboss, чтобы пул соединений обрабатывался контейнером?

Вам не нужно использовать службу JBoss или использовать HAR для использования соединения pooliong, см. Ссылку выше. И я бы не стал сейчас этим заниматься, на мой взгляд, это очень низкоприоритетный материал. Сначала загрузите первый прототип, посмотрите, как он вписывается в существующий код, что нужно изменить и т. Д.

0 голосов
/ 27 октября 2010

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

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

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