1

ある属性を使用して多対多の関係テーブルを自動的に作成する方法があるかどうか誰かが知っているかどうか疑問に思いましたか?テーブルを作成したり、クラスをマッピングしてそのリレーションテーブルにすることはありません。

属性[ManyToMany(3、Class = "DeploymentListUsers")]を追加すると、このクラスがDBにマップされていないというエラーが表示されます。

NHibernate.MappingException:テーブルUsersからの関連付けは、マップされていないクラスを参照します。

クラスを自分で定義したり、事前にDBにテーブルを作成したりしたくありません。

それはJAVAで可能だと思われますが、流暢なNHibernateは完全に実装されたバージョンの休止状態とJPAアノテーションですか?

http://www.hiberbook.com/HiberBookWeb/learn.jsp?tutorial=19mappingmanytomanyrelationships

ありがとう、Itay

4

3 に答える 3

0

同様の質問に対する私の答えはあなたを助けるかもしれません:https ://stackoverflow.com/a/12198533/185200

最終的に、カスタム属性で装飾されたプロパティをサポートするために、多対多の自動マッピング手順を拡張しました。

于 2012-08-30T13:59:48.020 に答える
0

クラスを指定する場合は、それも存在することを確認する必要があります。NHibernateはクラスを作成しません。ただし、多対多テーブルにデプロイメントテーブルへの外部キーとユーザーテーブルへの外部キーしか含まれていない場合は、そのようなクラスは必要ありません。リレーションに関する追加のファクトを保存する場合にのみ、個別の多対多マッピングクラスが必要になります。

私が知る限り、あなたの状況では、多対多のテーブルを作成し(NHibernateのSchemaExport()を使用してCREATE TABLEステートメントを生成できるため、そこに自動化があります)、NHibernateにマップする方法を指示するだけです。 。あなたとは異なり、私はマッピング属性を使用しないので、それらを使用してマップを作成する方法はわかりませんが、おそらく非常に簡単です。

于 2009-11-27T14:57:34.790 に答える
0

NHibernate は、JPA アノテーションを含む JPA (.NET プラットフォームでは NPersistence または NPA と呼ばれる) をサポートするようになりました。これは、関係を指定し、コードを他のベンダーにも移植できるようにするための最良の方法です。それをチェックしてください:www.npersistence.com

于 2011-12-05T11:58:03.140 に答える