質問
同じ.hbm設定の辞書コレクションクロスデータベースをマップする方法はありますか?プライマリキーのないNHibernate辞書マッピング
シナリオ
私は辞書プロパティにマップしようとしています:以下.hbm構成で
Dictionary<string, string> Phrases { set; get; }
を:
<map
name="Phrases"
cascade="save-update"
table="ATTRIBUTE_LOCALE"
lazy="true">
<key column="RESOURCE_ID" /> <!-- foreign key -->
<index column="LOCALE_NAME" type="string" />
<element column="PHRASE" type="string" />
</map>
と以下の表は[ATTRIBUTE_LOCALEのSQLを作成することです] for MS SQL:
CREATE TABLE ATTRIBUTE_LOCALE (
CUID int IDENTITY(1, 1) NOT NULL,
RESOURCE_ID int NOT NULL,
FIELD_NAME nvarchar(255) DEFAULT 'VALUE' NOT NULL,
LOCALE_NAME nvarchar(255) NOT NULL,
PHRASE ntext NULL
);
データベースをMS SQL ServerからOracleおよびOracleデータベースに変更した場合、IDENTITY(1,1)を使用して主キーを自動的に生成することはできません。 Oracleでは、NULLプライマリキーを持つテーブルを挿入するためにいくつか問題が発生します。
どうすればこの問題を解決できますか?あなたはむしろidentity
よりnative
ジェネレータでATTRIBUTE_LOCALE
テーブルをマップすることができ
私の要件では、ATTRIBUTE_LOCALEはDictionaryプロパティをマップする必要があります。 ATTRIBUTE_LOCALEの.hbmとドメインを追加できません。さらに、.hbm構成には、この