我对 javax.persistence、javax.persistence-api 和 javaee-api 的区别和内容感到困惑。javaee-api 可能包含更多,但我只对 JPA 的东西感兴趣(如果存在于 javaee-api 中)。从抽象的角度来看,有 JPA 作为规范和一些 JPA 的实现,如 eclipselink。因此,如果配置中存在两种依赖关系,则很容易理解:一种用于规范内容,一种用于实现。但这似乎有点复杂,所以我有以下问题:
我假设“javax.persistence-api”包含接口之类的东西,因此 javax.persistence-api 包含 JPA 的编程内容声明而不实现规范。因此,如果我将版本 2.2 中的 javax.persistence-api 设置为依赖项(maven 或 gradle),我定义必须使用 JPA 2.2(必须由实现支持),如果我将版本 2.1 中的 javax.persistence-api 设置为依赖项,我定义必须使用/支持 JPA 2.1。那正确吗 ?
“javax.persistence”依赖项的目的/内容是什么(例如,可在 2.2.1 版的这个 mvn 存储库中下载)?
7.0 版中的 javaee-api是否已经包含 javax.persistence-api,如果是,是哪个版本?2.1?我如何或在哪里可以发现这些信息?
如果我使用最新的可能实现,例如 EclipseLink 2.7.4(2019 年第一季度),它声明它支持 JPA 2.2,是否对旧 JPA 版本(如 2.1)有任何向后兼容性?
我会很高兴任何澄清。