Spring Data-JPA против JPA: в чем разница?



Я немного запутался в разнице между Spring Data-JPA и JPA. Я знаю о JPA, что это спецификация для сохранения объектов Java в реляционной базе данных с использованием популярной технологии ORM, т. е. другими словами, JPA предоставляет интерфейсы и другие технологии ORM, реализует эти интерфейсы, известные как поставщик JPA, например Hibernate.



теперь, что такое весенние данные JPA. Является ли Spring Data JPA добавила еще несколько функций (интерфейсов) над JPA, и все же это указано только или это также поставщик JPA?



Я видел, что Spring Data JPA работает вокруг репозиториев (слой DAO: если я не ошибаюсь). Итак, я имею в виду, как это отличается от использования "Spring Data JPA + Hibernate" или только с помощью "Hibernate" directing?

951   4  

4 ответов:

Я видел Spring, JPA работает вокруг репозиториев (слой DAO: если я не ошибаюсь). Итак, я имею в виду, как это отличается от использования "Spring JPA + Hibernate" или только с помощью "Hibernate" напрямую?

Как вы сказали, JPA это спецификация пока Hibernate является конкретной реализацией этой спецификации (эти реализации обычно называются поставщики). Используя Hibernate, вы привязываете себя к этому поставщик ограничивает вашу свободу переключаться на другой вариант, когда это необходимо (например, вы хотите использовать EclipseLink или ObjectDB вместо этого, потому что Hibernate имеет ошибку, которая останавливает процесс разработки).

цитирую весенние данные JPA ' s документы:

реализация уровня доступа к данным приложения была громоздкой в течение довольно долгого времени. Нужно было написать слишком много шаблонного кода. Доменные классы были анемичными и не имели был разработан в реальном объектно-ориентированном или управляемом домене.

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

подводя итог, он находится поверх JPA, добавляя еще один уровень абстракции, определяя стандартный дизайн для поддержки Настойчивость Слой в контексте Spring. Эти определенные интерфейсы (известные как Spring) предоставляют службы, которые платформа обрабатывает с помощью JPA для обслуживания результатов. Вы определяете репозиторий таким образом, что Spring может сканировать проект и находить его:

<repositories base-package="com.acme.repositories" />

таким образом, что позволяет использовать его в контексте контейнера или вне его.

теперь что такое весна, ДЖПА. Является ли Spring, JPA добавила еще несколько функций (интерфейсов) над JPA и по-прежнему указывается только или это также поставщик JPA?

Spring Data JPA предоставляет определение для реализации репозиториев, которые поддерживаются под капотом, ссылаясь на спецификацию JPA, используя определяемый вами поставщик.

API персистентности Java, иногда называемый JPA, является платформой Java, управляющей реляционными данными в приложениях, использующих платформу Java, Standard Edition (JavaSE) и платформу Java, Enterprise Edition(JavaEE).

настойчивость в этом контексте охватывает три направления:

  • сам API, определенный в .

  • в Java Persistence Query Language (JPQL).

JPA-это Java Persistence API, который является стандартным API Java для объектно-реляционного отображения.

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

Spring Framework-это большая структура, которая поможет вам легче писать программное обеспечение корпоративного уровня. Он содержит поддержку многих технологий Java, в том числе СПД.

Spring Framework состоит из набора проектов, и одним из этих проектов является Spring Data.

цель Spring Data-упростить работу с различными типами баз данных, от традиционных реляционных баз данных до баз данных NoSQL. Весна данных поддерживает СПД через пружину подпроекта СПД данных.

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

Если вы не используя Spring Framework для вашего приложения, вы, скорее всего, захотите использовать Spring Data JPA вместе с Hibernate.

эта ссылка должна быть полезной для лучшего понимания концепции:

https://spring.io/blog/2011/02/10/getting-started-with-spring-data-jpa/

Весна СПД данные черных ящиков - орг.springframework.данные.классы репозитория. Здесь представлены не все методы. Это ограничение, когда вам нужно сделать sth сложный. Типичный JPA открыт - вы можете решить, как работать с Entity Manager, например, создать некоторые магические процедуры в Dao и т. д.

вы можете поставить Daobab (http://www.daobab.io) по обеим технологиям. Daobab обеспечивает интеграцию между Java и JPA для пример:

List<String> names=Select.fieldList(daoPizza.colName())
	.where(daoPizza.colPizzaId(),Operator.GREATER_THAN,5).result();

Он работает как на SprinDataJPA, так и на pure JPA (Hibernate). Вот как различия в рамках могут быть не importart для вас.

Comments

    Ничего не найдено.