API-зависимости используются для compile
вашего проекта.Реализация может быть либо provided
средой выполнения (например, сервером приложений Java EE), либо приложение может быть собрано так, чтобы включать реализацию.Если вы не знакомы с областями maven, я предлагаю вам прочитать this .
- Вы правы,
javax.persistence-api
не включает реализацию. - этот репозиторий является реализацией eclipselink.ArtifactId изменен в версии 2.3 с "javax.persistence" на "eclipselink".
- javaee-api включает также JPA.Версия API может быть найдена, например, здесь : " Платформа Java EE 7 требует Java Persistence API 2.1. " Википедия также имеет сравнение версий APIвеб-профиль, который может прояснить ситуацию (веб-профиль является подмножеством спецификации Java EE).
- Я не знаю о совместимости между версиями JPA 2.1 / 2.2.Я бы всегда использовал одну и ту же версию реализации.
edit: я думаю, вы могли бы запустить приложение JPA 2.1 во время выполнения JPA 2.2.Однако обратная совместимость также должна означать отсутствие поведенческих различий .Новая версия имеет больше функций, и эти функции могут быть включены по умолчанию.В конце концов, Java EE - это «соглашение о конфигурации».Так что это также зависит от вашего определения «обратной совместимости».