Персистентность Java API

Я плохо знаком с Персистентностью Java API. Я только что изучил это и теперь хочу использовать его в своем Настольном приложении Java. Но у меня есть следующие вопросы относительно него:

Q1. Какая реализация JPA является самой маленькой в размере (поскольку я хочу иметь размер своего приложения как можно меньше)?

Q2. Как найти значение тег в persistence.xml файл. Я знаю, что его значение является конкретным поставщиком, но я не мог найти значение для реализации JPA загруженным отсюда.

6
задан naXa 5 November 2017 в 18:40
поделиться

3 ответа

Q1. Какая реализация JPA имеет наименьший размер (так как я хочу, чтобы размер моего приложения был как можно меньше)?

Для JPA 1.0:

  • Hibernate Entity Manager 3.4.0.GA: ~4.9MB
  • EclipseLink 1.1.3: ~4.7MB
  • OpenJPA 1.2.2: ~2.7MB (я не уверен в этом, пока не тестировал, так что могу не найти нужные банки)

Я бы держался подальше от TopLink Essentials.

Для JPA 2.0:

  • DataNucleus 2.0.3: ~3.7MB
  • EclipseLink 1.2 и 2.0+: ~4.8MB
  • Hibernate Entity Manager 3.5.0-Final: ~5.8MB
  • OpenJPA 2.0.0-beta3: не измерялось (все еще в бета-версии)

Эти измерения были сделаны на моем домашнем проекте (включая зависимости, кроме драйвера JDBC). Лично я не стал бы основывать свой выбор только на размере, даже для настольного приложения.

Q2. Как найти значение тега в файле persistence.xml.

  • DataNucleus: org.datanucleus.jpa.PersistenceProviderImpl
  • EclipseLink: org.eclipse.persistence.jpa.PersistenceProvider
  • Hibernate: org.hibernate.ejb.HibernatePersistence
  • OpenJPA: org.apache.openjpa.persistence.PersistenceProviderImpl
  • TopLink Essentials: oracle.toplink.essentials.PersistenceProvider
5
ответ дан 17 December 2019 в 00:06
поделиться

Вы имеете в виду размер в памяти? или размер банки? Размер в памяти зависит от того, сколько классов сохраняется, метаданные для них, сколько EntityManagers открыто, что находится в кэшах L1/L2. Я знаю, что DataNucleus использует меньше памяти, чем Hibernate, так как сами пользователи сообщили об этом, не имея представления о других основных реализациях.

Размер банки является бессмысленной мерой чего-либо, так как большинство вещей там может не использоваться.

PS. DataNucleus также является реализацией JPA1+2

0
ответ дан 17 December 2019 в 00:06
поделиться

Q1. ОЧЕНЬ приблизительный расчет:

  • Гибернация (версии около 3.4.0.GA) с зависимостями составляет ок. 3.6 Мб.
  • TopLink Essentials (2.0.1-04) ок. 2,4 Мб.
  • EclipseLink (например, TopLink) (1.1.3-M1) ок. 4.7 Мб.

Q2. Откройте JAR, проверьте файл META-INF / services / javax.persistence.spi.PersistenceProvider .

2
ответ дан 17 December 2019 в 00:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: