Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo, ich habe mit Spring-Boot in Eclipse ein Maven-Projekt geöffnet, ich brauch die Abhängigkeiten "javax.persistence", heißt ich brauche jpa.
Laut Repository muss ich in der pom.xml folgendes eintragen:
In Spring Boot 3 dürfte es javax.persistence nicht mehr geben. Das ist dann alles jakarta.persistence.
Wichtig ist, dass in einem Projekt man nur eine JavaEE Version verwendet. Das heißt nichts mischt.
In Spring Boot ist das relativ einfach, wenn man bei der Spring-Boot Parent POM bleibt. Da darf man einfach nie Versionen beim einbinden von dependencies angeben, sondern nimmt immer die vorgebene Version aus dem Dependency Management.
Das Thema ist doch jetzt zum dritten Mal hier im Forum... Werden jetzt Spring Boot 2.x Anleitungen mit Spring Boot 3 genutzt?
Wenn Du unbedingt javax.persistence nutzen willst (Wieso eigentlich?), dann bleib bei Spring Boot 2.x!
Wenn Du ein aktuelles Spring Boot nutzen willst, dann übernimm nicht Dinge blind, die für alte Versionen gemacht wurden. Und von Spring 2.x zu Spring Boot 3 ist schon ein großer Schritt. Da hat es einiges gegeben - einen ersten Hinweis findest Du zu meinem Post zu Spring 6 (Darauf basiert Spring Boot 3) - so Dinge wie der Wechsel zu Jakarta EE 9 (Womit der Wechsel von javax -> jakarta kam).
UNd noch ein wichtiger Hinweis: Wenn eine Klasse nicht gefunden wird: vernünftige IDEs bieten Dir da an, dass Klassen importiert werden. Da sollte dann die IDE jakarta.persitence vorschlagen als Lösung.
Es handelt sich um Spring Boot 3. Ich möchte ein Rest erstellen siehe diesen Thread. Ich wollte zum Import ein neuen Thread zur besseren Übersichtlichkeit aufmachen.
Ich habe mir schon unzählige Anleitungen angeschaut, aber fast jede Anleitung ist anders. Und da wurde die Annotation
Java:
@Entity
mit javax.persistence importiert.
Vielleicht hat jemand eine aktuelle Anleitung für Rest mit Spring Boot 3, die auch zeigt wie man Daten von der Datenbank holt, schickt (mit post, get, delete u.s.w.). Und auch wie man eventuell dann diese Authentifizierung vor nimmt.
Die Lösung ist ganz einfach:
Ändere den Import von javax.persistence zu jakarta.persistence
Das wäre noch einmal in ganz kurz eben genau die Lösung zu dem Problem.
Und Spring Boot 3 ist extrem neu - noch kein Monat draußen. Wenn Du dieses umsetzen nicht willst, dann bleib bei Spring 2.7.2. Oder schau direkt auf spring.io nach der Dokumentation dort.
Merker: Solange man nicht genau weiß was man tut - in einer POM, die den Spring Boot Parent verwendet, niemals Dependencies mit Versionen ergänzen. Immer ohne Version.
Ändere mal die mysql-Dependency (und ersetzt ggf. alles javax.persistence Imports durch jakarta.persistence Imports, sofern die dann nicht eh compile Fehler erzeugen)
Weiterhin entferne die Version von mysql, da die Version bereits durch den Parent entsprechend gesetzt ist. Man sollte die Versionen nur in dem Fall überschreiben, wenn man ganz genau weiß was man macht..
Hm... nach reiflicher Überlegung bin ich geneigt zu behaupten, dass es im Bereich des Möglichen liegt, die Verwendung von jakarta.persistence unter Spring Boot 3 durchaus als hilfreich zu erachten.
Hm... nach reiflicher Überlegung bin ich geneigt zu behaupten, dass es im Bereich des Möglichen liegt, die Verwendung von jakarta.persistence unter Spring Boot 3 durchaus als hilfreich zu erachten.
Hm.. mir ist nicht klar, was es da zu überlegen gibt. Entweder man geht den Weg zu Spring Boot 3.0.0+ oder eben nicht. Wenn nicht bleibt noch eventuell etwas Zeit, genau genommen bis November 2023. Danach wird es halt schwieriger, eben nur noch gegen Bezahlung (https://spring.io/projects/spring-boot#support).
Spring Boot 3.0.0 ist eine Major Release und somit u.U. inkompatible mit vorheringen Versionen (Abgesehen davon ist die Migration von aktuellen Spring Boot Versionen 2.7.6 nicht wirklich sehr propblematisch. Das setzt selbstverständlich voraus, dass man bisher auch schon immer wieder aktualisiert hat und entsprechende Tests mit Abdeckung usw. hat, außer man hat sich extrem in die Internas von Spring reingehängt)... Das ist nun mal der Weg... Java EE ist nun mal nicht mehr wirklich Zukunftsträchtig... sondern Jakarta EE...
Auszug aus den Release Notes:
Spring Boot 3.0 has migrated from Java EE to Jakarta EE APIs for all dependencies. Wherever possible, Jakarta EE 10 compatible dependencies have been chosen, including:
hinzugefügt habe, ist die Abhängigkeit 'jakarta.persistence' auch in Maven Dependencies eingetragen.
Wenn ich jetzt @Entity eingebe, dann schlägt mir Eclipse den Import von 'jakarta.persistence.Entity' vor, soweit alles gut es wird auch importiert.
Allerdings danach wird bei Entity immer noch ein Fehler angezeigt (Entity kann nicht in einen Typ aufgelöst werden), worauf es wieder importieren vorschlägt. seltsam.
Tipp: Nimm dir mal Zeit und versuche mal zu verstehen, was du da tust. Schmeiß die Dependency, die du hinzugefügt hast, wieder raus und mach es richtig. Lies dir mal durch, was Spring Boot Starter sind und wie Spring Boot aufgebaut ist. Wenn du mit JPA arbeiten willst, nimmst du nicht die jakarta-persistence depdency sondern den starter für jpa. Schau dir z.B. die POM die ich oben verlinkt habe oder erzeug dir über den spring initializer eine POM.
Na du bist ja optimistisch! Es sind nicht nur die Packages. Spring Cloud etc. sind noch RC's. Es gibt Änderungen für Hibernate, Security usw... Eureka ist die Hölle, ...Spring6NotImplementedException's.... Ich bin schon 3 Tage an 26 Microservices incl. Cloud. Ich sehe noch keine richtiges Ende und an die Tests denke ich noch gar nicht.
Das Projekt soll Mitte-Januar in Produktion gehen und der Kunde wünscht für den Start die neuesten Versionen. Das sehe ich noch nicht so. Ein paar frei Tage hätte ich auch gern über den Jahreswechsel.