Использование функций Hibernate Sessions вместе с Spring Data JPA - PullRequest
0 голосов
/ 02 октября 2018

Я знаю, что Spring Data JPA использует Hibernate, однако у меня есть некоторые вопросы, требующие разъяснения.

  • Смогу ли я использовать другие функции Hibernate, такие как C3P0, Hibernate второго уровнякэширование или Hibernate, если я использую Spring Data JPA?

  • Каковы преимущества использования @Query для написания пользовательских запросов по сравнению с использованием Hibernate-сессий и HQL?

  • Есть ли разница в производительности между использованиемМетоды запросов Spring Data JpaRepository и использование Hibernate HQL?

Я видел другие подобные вопросы здесь, и они не отвечают на эти вопросы.

1 Ответ

0 голосов
/ 02 октября 2018

Я знаю, что Spring Data JPA использует Hibernate

Нет.Он использует JPA.Несмотря на то, что Hibernate является стандартной реализацией JPA Spring Boot и является самой популярной реализацией JPA, можно использовать любой механизм JPA.

Смогу ли я использовать другие функции Hibernate, такие как C3P0

C3P0 не имеет ничего общего с Hibernate.Это пул подключений.Вы можете использовать любой пул соединений, который вы хотите использовать как в Spring, так и в Hibernate.Spring Boot по умолчанию использует HikariCP, и я бы придерживался этого (это очень хороший пул).

Кэширование второго уровня Hibernate

Да.

или сеансы Hibernate, если я использую Spring Data JPA?

Нет действительно веской причины использовать старый проприетарный Hibernate Session API вместо использования стандартного JPA API,Если вам действительно нужно, я не понимаю, почему вы не можете использовать его, но я бы не стал (и никогда не должен был).

Каковы преимущества использования @Query для написанияпользовательские запросы по сравнению с использованием Hibernate-сессий и HQL?

Запрос требует HQL (точнее, JPQL) запроса.Если вы используете Query, вы используете HQL.Преимущество в том, что вам просто нужно объявить запрос.Spring связывает вас с привязкой параметров, выполнением запроса, поиском и т. д.Но вы можете использовать пользовательские реализации репозитория и использовать собственный API JPA, если вам нужно.

Есть ли разница в производительности между использованием методов запросов Spring Data JpaRepository и использованием Hibernate HQL?

Нет.

...