Я видел Spring, JPA приста ks вокруг репозиториев (слой DAO: если я не ошибаюсь). Итак, я имею в виду, как это отличается от «Spring JPA + Hibernate» или только с использованием «Hibernate» напрямую?
Как вы сказали, JPA является спецификацией в то время как Hibernate является конкретной реализацией этой спецификации (эти реализации обычно называют провайдерами). Используя Hibernate, вы привязываетесь к этому провайдеру, ограничивая вашу свободу при необходимости переключать на другой параметр (например, вы хотите использовать EclipseLink или ObjectDB вместо этого, потому что у Hibernate есть ошибка, которая останавливает процесс разработки).
Цитирование Spring Data JPA «S документация:
Реализация уровня доступа к данным приложения были громоздкими довольно долгое время. Слишком большой код шаблона должен был быть написан. Классы домена были анемичными и не были разработаны в реальном объектно-ориентированном или управляемом доменами образом.
Использование обеих этих технологий позволяет разработчикам значительно облегчить сохранение настойчивости модели богатого домена. Тем не менее количество кода шаблона для реализации репозиториев, особенно, по-прежнему довольно велико. Таким образом, цель абстракции хранилища данных Spring заключается в том, чтобы значительно уменьшить усилия по внедрению слоев доступа к данным для различных хранилищ сохранения.
Подводя итог, он находится на верхней части JPA добавляя еще один слой абстракции, вид определения конструкции на основе стандартного для поддержки сохранение слоя в контексте Spring. Эти определенные интерфейсы (известные Spring) предоставляют услуги, которые платформа обрабатывает с помощью JPA для обслуживания результатов.Вы определяете хранилище в пути Spring может сканировать проект и найти его:
<repositories base-package="com.acme.repositories" />
Таким образом, что позволяет использовать его в контексте контейнера или за его пределами.
Теперь, что такое Spring, JPA. Spring, JPA добавила еще несколько функциональных возможностей (интерфейсов) поверх JPA, и все же она указана только или она также является поставщиком JPA?
Данные весны JPA предоставляет определение для реализации репозиториев, поддерживаемых под капотом, путем ссылки на спецификацию JPA, используя поставщика, которого вы определяете.
Могу ли я назвать репозитарий коллекцию сущностей, которыми управляет Spring? Я не знаю, почему, но поддержка Spring JPA с использованием репозиториев кажется очень похожей на EntityManager EJB - это правильное мышление или они совершенно разные по своей цели? Заранее спасибо. Мустафа. – Mustafa
@Mustafa Большинство решений имеют общие основания. Жесткая цель может быть одинаковой, реализация отличается от задействованных интерфейсов. – Gamb