14

次の Hibernate エラーを修正する方法:

「同じエンティティ名を 2 回使用する」とは何ですか。

4

7 に答える 7

2

私はこのエラーに何度か遭遇しました。原因は次のとおりです。

  1. 休止状態の構成に重複したマッピングがありました (構成ファイル/コードを確認してください)
  2. 2 つのスレッドが同時に HibernateSessionFactory オブジェクトを構築しようとしていました。初期化コードの同期ロックにより、これが修正されました。
  3. HibernateSessionFactory を構築しようとして失敗しましたが、再度呼び出されています。Hibernate Configuration オブジェクトがクリアされなかったため、エンティティが再度処理されています。
  4. 同じファイルにマップされている 2 つのエンティティ クラスがあります。Hibernate もこれで窒息します。
于 2009-04-23T13:47:20.063 に答える
2

もう 1 つのよくある間違いは、最近永続化クラスの 1 つを (あるパッケージから別のパッケージに) 移動したのに、IDE が .class ファイルを適切にクリーンアップできなかったことです。

または、一部の .class ファイルがまだ Application Server に残っています。

于 2015-01-13T10:17:16.747 に答える
0

これは、複数の構成ファイルで同じエンティティを宣言したことを意味すると思います。

これ以上の情報がなければ、エラーが表示されないように構成ファイルのチャンクをコメントアウトしてから、エラーが発生するまでセクションをゆっくりと追加して戻しますか?

設定ファイルが少ない場合は、ここに投稿してみませんか?投稿するときに、XMLの前に4つのスペースを追加すると、次のようになります。

<xml>nicely formatted</xml>

お役に立てれば。

于 2008-10-06T18:31:46.523 に答える
0

このエラーを発生させる最も一般的な間違いの 1 つは、2 つの異なる Java クラスを同じ名前のテーブルに保存しようとすることです。Hibernate は、各テーブルに 1 種類のものが存在することを好みます (サブクラスなどのいくつかの例外はあります)。そのため、おそらく StudentRecord と呼ばれるクラスと MusicRecords と呼ばれるクラスを作成し、Hibernate に両方を保持するように指示するとします。それらのクラスを「レコード」と呼ばれるテーブルに入れると、その種の例外が発生する可能性があります。この特定の言い回しでは、注釈を使用しているのではないかと思います (この場合、2 つの異なる Java クラスで記述された 2 つのテーブルに誤って名前を付けてしまう可能性がさらに高くなりますが、同じことです)。

お役に立てれば!(おそらくそうではないかもしれませんが、あなたがこの質問を7か月前に行ったことに今気づきました。あなたがまだ行き詰まっていないことを願っています!)

于 2009-04-21T01:40:37.923 に答える