Есть ли какой-либо общедоступный API-интерфейс, не зависящий от поставщика, совместимый с JPAv2

#java #maven #jpa #persistence #jpa-2.0

#java #maven #jpa #сохранение #jpa-2.0

Вопрос:

Пакеты JPA 2 maven, с которыми я встречался до сих пор, были только полными реализациями либо из hibernate, либо из eclipse. Но я хочу создать свой пакет с независимым от поставщика API. Доступен ли он общедоступно?

Ответ №1:

Группа разработчиков спецификации JPA была слишком ленива, чтобы потрудиться выпустить API-интерфейс, не зависящий от поставщика, для JPA 2.0 и JPA 2.1. Смотрите, Например https://java.net/jira/browse/JPA_SPEC-60

Вам просто нужно выбрать собственный api поставщика и надеяться, что они не указали там специфику поставщика. Naff

Ответ №2:

Взгляните на org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final , org.eclipse.persistence:javax.persistence:2.1.0 или org.apache.geronimo.specs:geronimo-jpa_2.0_spec:1.1 .

У Hibernate JAR вообще нет классов, специфичных для реализации, два других просто содержат некоторые дополнения OSGi, которые не причинят никакого вреда, если ваше приложение не использует OSGi.

Хотя, безусловно, было бы предпочтительнее иметь официальный javax.persistence:javax.persistence-api:2.x артефакт, у меня никогда не возникало проблем с компиляцией артефакта Geronimo с provided областью видимости и использованием моего скомпилированного артефакта с разными поставщиками сохраняемости во время выполнения.