1

カスタム列を持つデータベース列でプロパティをマップする方法はありますか?それはFKではなく、単なる候補キー(テーブルに対して一意です)ですか?

そうでない場合、ここでのオプションは何ですか? select(結合テーブルの制限で結果を制限する必要があります)

4

1 に答える 1

1

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");

とにかく、これは理想的ではなく、主にレガシーの問題を解決するために使用する必要があります。

于 2013-12-05T13:10:41.010 に答える