2011-11-12 14 views
4

は、私は現在、アプリケーションを作ってるんだと私はこのようになりますDBスキーマを作成から開始しました:多対多リレーションシップをマッピングするときに、なぜHibernateが追加のエンティティを生成していますか?

Database schema

表すいくつかのテーブル(users_groups_maps、articles_tags_mapsのreported_articles、favourite_articlesとbrowse_later_articles)があります。多対多の関連性。逆の設定ファイルを作成してリバースエンジニアリングを開始したので、Javaクラスをそこから取り出せるようになりました(Annotations、JDK 5、EJB3、javax.persistence。* annotations)。 (そのよう警告、ユーザーなど)

基本的なテーブルはちゃんとしている(例えば

private Set<BrowseLaterArticles> browseLaterArticleses = new HashSet<BrowseLaterArticles>(0); 

などのフィールドがありますが、私はそれだけで罰金だと思う - 私は、Hibernate初心者です)。

しかし、問題は(私が推測する)、それらの多対多の関係(例えばUserGroupsMapsコンストラクタは次のようになります。UserGroupsMapsIdは、ユーザIDとのgroupIdペアのラッパーです

public UsersGroupsMaps(UsersGroupsMapsId id, Users users, Groups groups) { 
    this.id = id; 
    this.users = users; 
    this.groups = groups; 
} 

、)で始まる

何か間違っているのですか、それとも別のコードにする必要がありますか? ManyToManyアノテーションがあることは知っていますが、なぜそれを使用して休止していないのですか?

//はまた、私はそれほど冬眠関連の質問を持っている - コメントprivate_messagesテーブルに、同じテーブルを参照する必要があり、それらのparent__idフィールドが、あります。自分のテーブルに外部キーを作成しましたが、それが正しいかどうかはわかりません。どのように見えますか?このケアでは、同じ名前の2つのフィールドを生成します。 プライベートコメントコメント; Commentsクラスの

よろしく、 マルチン

+0

イメージをアップロードすることができます:) – PhD

+0

各* _mapsテーブルの 'Indexes'を展開し、再度イメージをキャプチャ/再アップロードしてください。 – lschin

+0

Marcinこれはまさに私が抱えている問題です。 UserオブジェクトにはSet プロパティがあり、GroupにはSet が必要です。私が何をしていても、私はこれらの偽の中間物を手に入れます。 Reveng cfgウィザードには、選択した列のマッピングを調整するセクションがありますが、既に選択されているテーブルを使用するのではなく、スキーマ全体を最初から再フェッチするように愚かになったときに無視しました。それはどこに行くかのように見えます。 Dagnabbit、今私はこれがゾンビのスレッドであることに気付きました。 drat。 – user1944491

答えて

0

あなたのhibernateマッピングがどこかで台無しにされています。 Hibernateは、そのテーブルに追加の列がない限り、多対多の結合オブジェクトのオブジェクトを作成しないというオプションを提供します。あなたはeclipse hibernate pluginを使っていると思いますか?コードジェネレータの設定をチェックして、そのオブジェクトを作成しないように指示できるかどうかを確認します。

+0

はい、私はEclipse用の休止状態のツールを使用しています。私はここに投稿する前にこのオプションのチェックを外してみた。私はリバースエンジニアリングのxmlで何かを変更していない、テーブルを追加しました。休止状態のコンソール構成では、dialectはMYSQL5(InnoDB)に設定され、タイプは注釈に設定され、その他のオプションはデフォルトに設定されます。 – Marcin

0

"休止ツール"/"Jbossツール"がBeanクラスの多くのアノテーションを生成するためには、単純なマッピングテーブルを使用する必要があります。 これらのマッピングテーブルには、両方の外部キー用の列があります。これらの外部キーは、結合された主キーでなければなりません。

関連する問題