Есть ли какое-либо преимущество в использовании библиотеки, отличной от Hibernate, для JPA?
-
21-09-2019 - |
Вопрос
Я использую JPA уже некоторое время и участвовал в проектах, где мы использовали как Hibernate Annotations, так и Toplink Essentials.
AFAIK, руководитель проекта выбрал Toplink, потому что Netbeans интегрировал его и казалось, что это проще всего сделать.
Однако при поиске помощи в большей части литературы, по-видимому, предполагалось, что вы используете Hibernate в качестве поставщика JPA, поэтому вопрос в том, нашли ли вы какое-либо преимущество, производительность или что-то еще за то, что вы не используете стандарт де-факто для JPA, Спящий режим?
Решение
Нашли ли вы какое-либо преимущество, производительность или что-то еще, если вы не используете стандарт де-факто для JPA, Hibernate?
Я предпочитаю Hibernate, потому что:
- Я думаю, что (размер) сообщества имеет значение.
- Я доволен производительностью Hibernate, документацией, инструментами, поддержкой и расширениями.
- Я до сих пор сам не проводил никаких тестов и не доверяю тем немногим тестам, которые вы можете найти в Интернете (которые либо не репрезентативны, либо предвзяты), поэтому я не могу сравнивать с точки зрения производительности.
Но TopLink Essentials — это серьёзная реализация (она используется в коммерческом распространении GlassFish, и TopLink оказался отличным продуктом).Просто, ИМХО, вам может быть не так легко найти помощь, как с Hibernate.
Другие советы
Почему бы на самом деле не провести сравнение скорости типичных операций, которые требуются вашему приложению?Да, есть различия.Или, может быть, вам нужны определенные расширения, а в Hibernate в таких случаях их нет.Стандарта «де-факто» не существует. для JPA, вопреки вашему мнению.Многие люди используют Hibernate, используя его API, а не JPA.Вы знаете, что существует множество «подводных камней» при использовании системы с прокси-серверами, и, следовательно, вы должны иметь это в виду при разработке своей модели;другие реализации не обязательно имеют их.Существует также множество других реализаций JPA.
PS, DataNucleus AccessPlatform — одна из таких реализаций.Я предпочитаю предоставить вам возможность провести сравнение, поскольку это ваш проект, к которому оно должно применяться.