4

マッピング ファイルの ID ジェネレーター セクションで、NHibernateassigned と select の意味は何ですか?

4

2 に答える 2

7

assignedエンティティをセッションに保存する前に、コードで主キーを割り当てることを意味します。

selectデータベースによって割り当てられ、一意のキーを照会することによってデータベースから取得されることを意味します。

于 2011-06-01T13:28:49.163 に答える
4

アイデンティティ/シーケンスと割り当てがあります。NHドキュメントから:

5.1.5.1. 発生器

ID 列をサポートするデータベース (DB2、MySQL、Sybase、MS SQL) では、ID キーの生成を使用できます。シーケンスをサポートするデータベース (DB2、Oracle、PostgreSQL、Interbase、McKoi、SAP DB) では、シーケンス スタイルのキー生成を使用できます。どちらの方法でも、新しいオブジェクトを挿入するために 2 つの SQL クエリが必要です。

uid_sequence クロスプラットフォーム開発の場合、ネイティブ戦略は、基盤となるデータベースの機能に応じて、identity、sequence、および hilo 戦略から選択されます。

5.1.5.7. 割り当てられた識別子

(NHibernate に識別子を生成させるのではなく) アプリケーションに識別子を割り当てさせたい場合は、割り当てられたジェネレータを使用できます。この特別なジェネレーターは、オブジェクトの identifier プロパティに既に割り当てられている識別子の値を使用します。この機能を使用してビジネス上の意味を持つキーを割り当てる場合は、十分に注意してください (ほとんどの場合、ひどい設計上の決定です)。

その固有の性質により、このジェネレーターを使用するエンティティは、ISession の SaveOrUpdate() メソッドを介して保存できません。代わりに、ISession の Save() または Update() メソッドを呼び出して、オブジェクトを保存または更新する必要があるかどうかを NHibernate に明示的に指定する必要があります。

于 2011-06-01T19:29:30.640 に答える