タイトルの通り、新規プロジェクトでjavax.persistenceが使えない状況が発生した
↓の画像の通りjavax.persistenceのimportでエラーになる
なぜjavax.persistenceをimportしようと思ったかというと
postgresqlに接続するサンプルプロジェクトを
ググったらほぼ全てのサイトでjavax.persistenceをimportしていたから…
私は以下のサイトを参考にspring + postgresql + jpa
の簡単なCRUDプロジェクトの作成をしようとしていました
間違った解決法:javax.persistence-apiを依存関係に追加する
私がやってしまった間違った解決法を以下に記載します。
これやってしまったことにより表面上はエラーがない状態になるため
本来の解決方法に辿り着くまで
めちゃくちゃ時間掛かってしまいました。。3日ぐらい費やした…
(注意:以下をマネするとアプリがちゃんと動かなくなります)
なにをしたかというと無理やり
pom.xmlに以下の画像の通りjavax.persistence-apiを
依存関係に追加しました
これをすると以下の通りimportのエラー自体は解消します、当たり前だけど
(解消しちゃうからややこしくなります)
しかしSpring Boot Appで実行すると以下のエラーが発生します、必ず。
Caused by: java.lang.IllegalArgumentException: Not a managed type: class [XXX]
で、IllegalArgumentException: Not a managed type: classでググると
色々解決法が出てくるのですが、私の場合全て当てはまりませんでした…
本来の解決法:jakarta.persistenceをimportすればよかっただけ
javax.persistenceを無理やりimportしようとするのではなく
jakarta.persistenceをimportすれば
Entityアノテーションなどが使えます
なおかつSpring Boot Appの実行時にエラーになることもなくなりました。
調べてみるとある時点からjavaEE→jakartaEEに移行したみたい…
政治的な話っぽい気がしていますが正直私はよく分からなかったので
以下リンクを貼り付けておきます。リンクを見るとなんとなく分かるかと思います