Již jsem vám to psal několikrát co Oracle měl udělat. Tj. Vytvořit nějaký Initializer modul, který by dodal všechny potřebné součásti z Java EE stejně jako to dělají ostatní frameworky jako Quarkus, Spring Boot atp. Jenže to měl udělat před rokem 2018 a ne se na to úplně vybodnout. Jestli nerozumíte psanému textu tak je problém u vás a ne u mě. Navíc vůbec nejde o to co já si myslím, že měl Oracle s Java EE udělat, ale co udělal a to všichni víme, že neudělal nic a pak se jí na nátlak komunity zbavil.
Rozdíl mezi Spring Data JPA s Hibernate, EclipseLink nebo OpenJPA a mezi Java EE a JPA vůbec nevidím. Pořád se používá JPA z Java EE a jestli implementaci dodá Spring, Quarkus nebo Java EE aplikační server je úplně jedno a pořád se jedná o to samé. Takže pokud udělám knihovnu s JPA API a pak jí dám do Java EE nebo Springu nebo do Quarkus, tak to pořád bude fungovat a vůbec mě nezajímá kdo mi dodá implemtaci JPA jestli framework nebo aplikační server je mi úplně jedno a z funkčního pohledu je to jedno úplně.
Stejně tak můžu říct, že implementace je součástí frameworku a moje aplikace běží na frameworku a pořád je to to samé jako když ta aplikace běží v aplikačním serveru. To, že si myslite, že dělat fatjar se všemi knihovnami v něm je jediná variantě je jenom váš problém, ale pořád si stejně jako u Java EE můžete framework dát jako provided závislost a knihovny dodat aplikaci jinak (přidáním na classpath). Mimochodem takhle by se to správně, pokud výsledkem vaší microsevice nějaký container, dělat mělo tj. dát library framework závislosti do jedné layer a do druhé samostatnou aplikaci (pokud potřebujete vědět proč to tak dělat nestyďte se zeptat). Potom už rozdíl mezi aplikačním serverem a layerem jenom s knihovnami není vůbec žádný. Na tu samou layer mužů nahrát novější verzi aplikace nebo, což bude pro vás bude naprostý šok, úplně jinou aplikaci.