web-dev-qa-db-ja.com

JPAは列/ IntelliJを解決できません

Hibernate JPA実装を使用して、いくつかのJavaクラスをマップしようとしています。私の問題は、ハードコーディングされた文字列または列名を使用できないことです。未満。

enter image description here

OpenJPAをデフォルトのJPAプロバイダーとして使用していますが、すでに変更を試みています。

IntelliJバージョン14.0.3

よろしく、

29
pichlbaer

永続性ユニットまたはセッションファクトリ(hibernate.cfg.xml)にデータソースを関連付ける(最初にデータベースビューでデータソースを作成する-別名、実際のJDBCデータベース接続)必要があります。

以下の手順に従ってください。警告は消えます。

  1. 永続性ツールウィンドウを開きます(表示|ツールウィンドウ|永続性)。
  2. 必要なモジュール、永続性ユニット、またはセッションファクトリを右クリックし、コンテキストメニューで[データソースの割り当て]を選択します。
  3. 開いた[データソースの割り当て]ダイアログで、[データソース]フィールドをクリックし、必要なデータソースを選択します。 (データソースとの関連付けを削除するには、を選択します。)

こちらをご覧ください: データソースとセッションファクトリおよび永続性ユニットの関連付け

75
panagiotis

Panosの回答は有用であることがわかりましたが、データベースをデータソースとして追加することについて誰も言及していませんでした。おそらくそれは想定されるのに十分なルーチンですが、そうでない場合は、ここで私がしなければならないことです:

View/Tool Windows/Databaseを選択します

通常、データベースウィンドウは右上に表示されます。

データベースウィンドウで、緑色の+記号をクリックし、Data Source/MySQL(または任意の種類のData使用しているソース)。

Data Sources and Driversウィンドウがポップアップ表示されます。

データベースがそこにリストされていない場合は、空のフォームを使用して次を追加します。

  • Host:通常はlocalhostですが、テストデータベースが別のマシンにある場合は、そのアドレスを入力します。
  • Username:データベースで使用します。

  • Password:データベースユーザーのパスワード。

IDEAでは、JDBCドライバーを見つけるのに多少の手間がかかる場合があります。理論的には、作業中のプロジェクトのMavenビルドプロセスで見つかったはずであると言われましたが、見つかりませんでした。View/Tool Windows/Databaseを再度開き、MySQLエントリを確認しました。下部のDriver:の横にエラーメッセージがあり、MySQLリンクもありました。MySQLリンクをクリックし、IDEAがポップアップを表示してConnector/Jを取得しました。

Auto commitおよびAuto syncのチェックボックスはデフォルトでオンになっているにもかかわらず、そのままにしておきましたが、 IDEAはナッジが必要なようです。または、しばらく時間がかかっていたので、私は焦りました。

いずれにしても、最初にDatabaseにあるデータベースの行をダブルクリックしました。それはそれを行うように見えましたが、私はまだPersistenceが必要であることに気づかず、それを整理しながら、同僚の提案で、Synchronizeボタン(円の2つの矢印)Database

Databaseでデータベースを右クリックし、Synchronizeを選択することもできます。

数秒かかる場合がありますが、IDEAがDatabaseのエントリの下のデータベーススキーマに入力されていることがわかります。

最後に、Panosの答えを見つけて、Persistenceを修正しました。

View/Tool Windows/Persistenceを選択します

通常、永続ウィンドウは左上に表示されます。

「持続性」ウィンドウで、プロジェクトを右クリックし、Assign Data Sourcesを選択します。

IDEAは、左の列にプロジェクト、右の列に空のセルの2つの列を持つダイアログをポップアップします。空のセルをクリックすると、IDEAにドロップダウンが表示され、追加したデータベースを選択できます。

繰り返しますが、IDEAがデータソースの分析を完了し、すべての検査をやり直すには数秒かかる場合があります。

11
Steven J Owens