Миграция в ORM - PullRequest
       23

Миграция в ORM

2 голосов
/ 19 февраля 2010

Шаг за шагом, какой будет хороший способ интеграции Spring и Hibernate в существующее приложение JSF, которое не использует ORM?

Ответы [ 3 ]

2 голосов
/ 19 февраля 2010

1) Сначала вам нужно спроектировать модель предметной области, а затем сопоставить ее с базой данных. Для этого вы можете использовать средства обратного инжиниринга Hibernate.
2) Другой вариант - вручную сопоставить текущие объекты (DTO) с таблицами базы данных. Поскольку вы используете JSF, я предполагаю, что у вас сейчас будут какие-то объекты.
3) Создайте слой обслуживания вокруг объектов.

Весна -
1) Вы можете использовать Spring для предоставления шаблона гибернации, предоставления общих сервисов через bean.
2) Вы можете управлять транзакцией в Spring.

1 голос
/ 19 февраля 2010
  1. Я бы рекомендовал сначала написать тесты, чтобы проверить код вашего предыдущего постоянного механизма. Этот код можно использовать для проверки правильности поведения нашей интеграции ORM.
  2. Как уже упоминалось в других ответах, наличие четкого DAO, определяемого интерфейсом, помогает связать код DAO.
  3. Сначала сопоставьте объекты домена, затем напишите свой DAO, а затем объекты службы (которые заботятся о большом элементарном наборе операций, заключая его в транзакцию).
  4. Используйте механизм постоянства, который не зависит от поставщика (JPA - хороший и единственный выбор).
  5. Начните с одной базы данных и придерживайтесь ее во время всей миграции. В очень редких случаях вы можете встретить тонкие различия между базами данных, которые могут быть очень трудно решить, особенно если вы новичок.
  6. При запуске используйте автоматическую генерацию базы данных ( generateDdl для подсистемы гибернации), а затем, когда ситуация начинает стабилизироваться, принудительно используйте аннотации @Table и @Column для исправления имени каждого столбца. На этом этапе напишите сценарий SQL, который генерирует базу данных с пустыми таблицами. Причина в том, чтобы исправить вашу архитектуру и убедиться, что вы управляете организацией базы данных.

Если вы серьезно относитесь к ORM, посмотрите на Сохранение Java с Hibernate Кристиана Бауэра (публикации Мэннинга), это "библия" о гибернации и JPA на Java.

1 голос
/ 19 февраля 2010

Если вы написали Spring правильно, у вас должны быть интерфейсы DAO / репозитория. Если это так, все, что вам нужно сделать, это написать новую реализацию этого интерфейса, используя Hibernate, протестировать ее и изменить конфигурацию Spring, чтобы внедрить ее.

ORM предполагает наличие объектной модели для сопоставления с реляционной схемой. Если вы этого не сделаете, я бы посоветовал не использовать ORM. В этом случае лучше использовать iBatis или JDBC.

...