Использование пружинных данных JPA вместо спящего - PullRequest
1 голос
/ 12 марта 2019

Можем ли мы использовать пружинные данные JPA для выполнения всех операций с базой данных?Можем ли мы выполнить все сложные вещи, такие как кэширование, хранимые процедуры и т. Д., Используя данные пружины JPA и использовать данные пружины JPA вместо спящего режима?

Все примеры, с которыми я сталкивался, использовали только данные пружины JPA спружинный башмак.

Ответы [ 3 ]

6 голосов
/ 12 марта 2019

Spring data не предназначен для замены hibernate.

Цель spring data - полностью упростить или полностью удалить реализации слоя DAO.

Hibernate реализует спецификацию JPA, но не spring data. Также spring data может использовать hibernate в качестве реализации спецификации JPA.

2 голосов
/ 12 марта 2019

Данные Spring, которые названы в другом ответе, это что-то другое. Это зонтик, который охватывает проект, предназначенный для доступа к базам данных. Это spring-data-jpa, spring-data-jdbc ...

Spring-data-jpa - это компонент Spring, который облегчает использование jpa, например, предоставляя интерфейс JpaRepository, где вы можете определять методы без реализации, которые будут реализованы во время выполнения с использованием их имен. Таким образом, вы можете управлять своим постоянным слоем без написания ни одной строки SQL.

Под капотом spring-data-jpa используется реализация jpa. По умолчанию это спящий режим, но его можно изменить на openJPA, toplink и другие.

1 голос
/ 14 марта 2019
  • Spring Data JPA - это абстракция Spring для JPA (Java Persistence API) с более простыми в использовании методами и настройками по умолчанию, определенными в спецификации JPA
  • Hibernate в другом случае - реализация JPA (поставщик JPA).

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

Я использовал Spring Data JPA в небольших и крупных проектах с простыми запросами. Основным преимуществом является отсутствие необходимости использовать аннотацию @Query. В Spring Data нет ничего, что мешало бы использовать его в больших проектах, и недавняя поддержка QueryDSL может вам помочь. Это пример использования QueryDSL для нацеливания на Hibernate.

Если вы предвидите сложные запросы и чувствуете себя комфортно, используя объекты Hibernate без JPA, я думаю, что альтернативной комбинацией могло бы быть использование простых Spring Data Repository рядом со сложными, основанными на Hibernate, с конкретными методами, которые могут вам понадобиться. Это может быть менее громоздким, чем скручивать реализацию Hibernate в структуру Spring Data JPA.

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