Использование Hibernate с Spring 3 - PullRequest
3 голосов
/ 10 июля 2010

Моим текущим инструментом веб-разработки является Spring 3, я раньше использовал Hibernate, на самом деле я довольно хорошо знаком с ним после У меня есть доступ к аннотациям и сущностям, а также к объекту сеанса. Тем не менее, это будет мой первый раз, когда мне нужно будет настроить его с нуля.

В настоящее время у меня есть источник данных, который я использовал для JDBCTemplate, и я хочу использовать его повторно для Hibernate.

К сожалению, чем больше я читаю о Hibernate, тем больше путаюсь. Есть много разных способов его настройки, и со времени некоторых уроков многое изменилось. Наиболее запутанным является то, что иногда используется файл persistence.xml, иногда XML-файл конфигурации Hibernate.

Тогда есть фабрики сессий, но есть фабрики менеджеров сущностей. Может кто-нибудь, пожалуйста, передайте часть этой информации, чтобы у меня был более ясный путь впереди.

Мои единственные реальные требования - чтобы я мог использовать аннотации с Hibernate. Мне бы тоже хотелось иметь поддержку транзакций.

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

1 Ответ

3 голосов
/ 10 июля 2010

В настоящее время у меня есть источник данных, который я использовал для JDBCTemplate, и я хочу повторно использовать его для Hibernate.

Нет проблем.Я бы только упомянул, что для доступа к одним и тем же таблицам через Hibernate и JDBC потребуются некоторые меры предосторожности.

(...) Наиболее запутанным является то, что иногда используется файл persistence.xml, иногда hibernateXML-файл конфигурации.

hibernate.cfg.xml - это файл конфигурации Hibernate native .persistence.xml - это файл конфигурации JPA (стандартизированный Java Persistence API).Если вы решите пойти по JPA (и это будет моей рекомендацией), вы обычно используете только persistence.xml.И если вы используете Spring, большая часть конфигурации на самом деле окажется в файле конфигурации Spring в любом случае.

Тогда есть фабрики сеансов, но есть и фабрики менеджеров сущностей.Может кто-нибудь, пожалуйста, передайте часть этой информации, чтобы у меня был более ясный путь впереди.

Та же история, что и выше.SessionFactorySession) являются классами из нативного API Hibernate, в то время как EntityManagerFactory и EntityManager являются в некотором роде "аналогами" JPA.Если вы пойдете по JPA, вы будете иметь дело с EntityManagerFactory и EntityManager.

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

Как уже упоминалось, я бы предложил использовать стандартизированный API JPA (и использовать проприетарные расширения Hibernate, только если это строго необходимо).Для транзакций используйте Spring.

Раздел 12.6.JPA документации охватывает все, что вам нужно для настройки Spring (я предлагаю использовать LocalContainerEntityManagerFactoryBean, который вы будете передавать с вашим источником данных).

Для данныхУровень доступа (DAO) либо использует классы JpaTemplate и JpaDaoSupport, либо реализует DAO на основе простого JPA с использованием введенных EntityManagerFactory или EntityManager (я лично используюболее поздний подход).

Все эти ссылки на документацию по Spring 2.5 все еще действительны в Spring 3.0.На всякий случай, вот не слишком старый учебник , который может помочь вам начать.

См. Также

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