カスタム列を持つデータベース列でプロパティをマップする方法はありますか?それはFKではなく、単なる候補キー(テーブルに対して一意です)ですか?
そうでない場合、ここでのオプションは何ですか? select
(結合テーブルの制限で結果を制限する必要があります)
カスタム列を持つデータベース列でプロパティをマップする方法はありますか?それはFKではなく、単なる候補キー(テーブルに対して一意です)ですか?
そうでない場合、ここでのオプションは何ですか? select
(結合テーブルの制限で結果を制限する必要があります)
Hibernate は と呼ばれる機能をサポートしていますproperty-ref
。ここに文書化されています: 5.1.10。多対一。いくつかの抜粋:
この
property-ref
属性は、外部キーが主キー以外の関連付けられたテーブルの一意のキーを参照するレガシー データのマッピングにのみ使用する必要があります。これは見苦しいリレーショナル モデルです。たとえば、Product クラスに固有のシリアル番号があり、それが主キーではないとします。(unique 属性は、SchemaExport ツールを使用して NHibernate の DDL 生成を制御します。)
したがって、子テーブルにたとえば、ターゲットの親Guid
テーブルと同じものが含まれている場合...これで問題が解決する可能性があります。マッピング例:
<many-to-one name="Parent" property-ref="ParentGuid" column="THE_GUID_COLUMN"/>
流れるような構文を使用すると、次のようになります。
References(x => x.Parent)
...
.PropertyRef("ParentGuid")
.Column("THE_GUID_COLUMN");
とにかく、これは理想的ではなく、主にレガシーの問題を解決するために使用する必要があります。