Использование Hibernate и Jdbc в Spring Framework 3.0 - PullRequest
3 голосов
/ 05 марта 2012

Я работаю над проектом, который использует Spring 3.0, Hibernate 3.0. Мой проект имеет уровни Controller, Service и DAO. Доступ к Daos (написанным в спящем режиме) осуществляется с сервисного уровня. Теперь требуется, чтобы я использовал как Hibernate, так и JDBC. Спящая часть составляет около 80-90%. Для оставшихся 10% я должен использовать простой JDBC (можно использовать JdbcTemplate). Пожалуйста, предложите мне, как я могу пойти и на Hibernate и Jdbc вместе. Мне нужен дизайн с разделением, повторным использованием. И как реализовать это весной?

Любые предложения приветствуются.

Заранее спасибо !!

Ответы [ 2 ]

5 голосов
/ 06 марта 2012

Вы можете безопасно смешивать hibernate с весенним JDBC, и оба должны иметь возможность совместно использовать транзакции, управляемые HibernateTransactionManager. Помните, что для этого вам следует использовать шаблоны Spring, поскольку они способны обнаруживать и повторно использовать привязанное к потокам соединение с активной транзакцией. Если по какой-то причине вы хотели бы добавить другую библиотеку на основе jdbc (например, groovy sql), вы все равно можете сделать это через spring DataSourceUtils.

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

1 голос
/ 05 марта 2012

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

В спящем режиме вы можете использовать именованный собственный запрос пример: http://www.java2s.com/Code/Java/JPA/UsingNamedNativeQuery.htm Прокрутите немного вниз и найдите файл: Professor.java Вы можете использовать этот пример. Таким образом, вы можете запускать собственные запросы из спящего режима.

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