JPAプロジェクトを作成するたびに、Eclipseはプロジェクトにエラーがあると報告しますが、なぜエラーが発生するのかわかりません。以下に画像とエラーを追加しました:
説明リソースパスの場所の種類列 "id"はテーブル "page"で解決できませんPage.Java/BreakpointJPA/src/no/breakpoint/domain行14 JPA問題
説明リソースパスの場所タイプ列「タイトル」はテーブル「ページ」ページで解決できません。Java/ BreakpointJPA/src/no/breakpoint/domain行18 JPA問題
説明リソースパスロケーションタイプ主キー結合列「id」は、テーブル「ページ」ページで解決できません。Java/ BreakpointJPA/src/no/breakpoint/domain行10 JPA問題
同じ問題がありましたが、解決策はデータベース接続を更新することでした。
JPAビューを開き、データソースエクスプローラーを見つけます。そこでデータベース接続を開き、データベースに接続し、更新を押します。次に、ファイルに変更を加えて保存し、@ Column(name = "")アノテーションをidフィールドに追加しました。その後、エラーメッセージは表示されなくなり、Columnアノテーションが削除されました。
問題は、Eclipseが最初の接続を確立した後、データベーステーブルを読み取り、その後接続が閉じられたことにあるようです。したがって、私が行ったように、データベースでの最初の接続の後に、フィールド名をfoo_idから単なるidに変更するなど、いくつかの変更を加えた場合、Eclipseはそれを認識せず、このエラーが発生しました。
古いスレッドですが、同じ問題があり、さらに迅速なアプローチで解決しました。
これが誰かを助けることを願っています。
同じ問題がありました。ここに私がそれを解決した方法があります
問題を簡単に解決したい場合はこれを読んでください
データベースに問題はありません。 Eclipseから、JPA機能をプロジェクトに追加するときに実行するのと同じデータベースへの新しい接続を作成する必要があります。
手順:-
mysqlプロンプトから新しいデータベースを作成します。
Eclipse/MyEclipseでプロジェクトを右クリックし、[プロパティ]に移動します。
左側の[Eclipse/MyEclipse]タブをクリックし、[JPA]サブメニューをクリックします。
次に、[Create new Connection]をクリックします。新しい接続名を入力します。同じデータベースを追加します。 (データベースを変更することもできますが、同じデータベースでも変更できます)。
接続をテストし、[完了]をクリックします。
初めて作成された接続名は表示されません。 Ok)をクリックして、そのウィンドウを閉じます。
次に、プロジェクトをもう一度右クリックして、プロパティをクリックします。これで、その接続ドロップダウンリストに新しく作成した接続が表示されます。それを選択して「OK」をクリックします。
あなたのエラーは消えます。
このエラーの考えられる理由:-
Eclipseは、persistence.xmlを使用してプロジェクトを使用して接続するたびに、データベースとの接続を作成しますが、これは初めてです。
そのため、特にデータベース側からの変更(テーブル名など)により、Eclipseからエラーがスローされます。
ありがとうございました。
データソースエクスプローラーに移動し、データベース接続を切断します。データベース接続を接続した後、プロジェクトを右クリックし、検証をクリックします。
お役に立てば幸いです。
プロジェクトにJPA/JPA2インターフェースが含まれていますか? Mavenを使用している場合は、クラスの依存関係を含める必要があります。インポート宣言に赤い線が表示されていないためと考えられますが、念のため、それらが存在することを確認する必要があります。
JPA2依存関係の場合、以下を使用できます。
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
私の場合、プロパティ-> JPA->接続の追加で古い接続でした。したがって、更新しても効果はありません。 正しいデータベースの新しい接続は、更新ができない場合に役立ちます。
@Column(name = "")の引用符の内側でコードアシストを実行してみてください。または、JPAの詳細ビューを開き、列名のコンボを表示して、列オプションを確認します。 @Table(name = "page")アノテーションに検証エラーがないため、Eclipseがページテーブルを見つけているようです。
あなたはこれを試すことができます:
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id", unique=true, nullable=false)
private int id
アノテーションは正しいように見えますが、プロジェクトのクラスパスは正しいですか?まず、idフィールドとtitleフィールドなしでエンティティを作成してみてください。