問題タブ [nhibernate-mapping]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nhibernate - NHibernate - ID を DB2 ID にマッピングする
私はNHibernateに慣れていないので、ISeriesプロバイダーを介してDB2テーブルに接続しようとしています。テーブルには、ID として自動生成される BIGINT 主キーがあります。マッピング ファイルの id の generator プロパティにいくつかの値を試しましたが、成功しませんでした。テーブル定義は次のようになります (フィールド名が変更されています)。
マッピング ファイルは次のようになります。
最初に、ジェネレーター クラスを「ネイティブ」に設定しました。これは、ドキュメントによると、 DB2 の「ID」を選択します。「ネイティブ」または「ID」を使用すると、ジェネレーター クラスを他のさまざまな値に変更すると、「列 PKID で許可されていない Null 値」やその他のさまざまなエラーが発生します。
ドキュメントに欠けている小さなものがあると確信していますが、DB2 の GENERATED IDENTITY である主キーの次の値を NHibernate に取得させ、呼び出し時にそれを処理させる方法はありますか?保存()?NHibernate が次の値を取得するために使用できる select をどこかに書く必要がありますか?
前もって感謝します。
.net - それは1対1ですか、それともコンポーネントですか?Nhibernateマッピング
PersonクラスとAddressクラスがあり、DBに異なるテーブルがあると仮定します。
1人の人が1つのアドレスクラスを持つことができます。これは私にとって重要な部分です。子要素であるため、 1人のユーザーが持つことができるアドレスは1つだけであり、DB内の異なるテーブルにそれらを保持したいと思います。
通常、私はそれらを同じテーブルに保持する必要があることを知っていますが、私のシナリオではこれが必要です。
(また、1対多のように見えますが、1つのオブジェクト専用のコレクションは必要ありません)
そしてクラスコード
ご覧のとおり、Personを取得するときに、PersonのAddressプロパティを取得したいですか?しかし、それらは異なるテーブルにあります。このマッピングはどのように行うことができますか?
前もって感謝します
nhibernate - Hibernate 汎用コンポーネント
NHibernate でジェネリック コンポーネント マッピングを作成するにはどうすればよいですか。クラス Pair{virtual T First{get;set}, virtual T Second{get;set;}} があります。
nhibernate - NHibernate を使用した items-itemtags-tags テーブルのマッピング
このデータベース設計があるとしましょう:
そして、それを次のクラスにマップしたい
Tag クラスを宣言したくないことに注意してください。Item クラスには、タグを表す文字列のリストが必要なだけです。
これは可能ですか?
asp.net - サブアイテムが同じテーブルにあるアイテムを Nhibernate とマップする方法は?
私はメッセージングシステムを構築しようとしています。このために、以下のテーブル定義があります
メッセージ
そして私はこれをMessage.csに持っています
私はこれを試しましたが、メイン コレクションのすべてのメッセージとすべての回答が表示されます。
しかし、私は答えがメッセージのように(メインアイテムのように)見られたくありません。
このマッピングはどのように行うことができますか?それらは同じテーブルにありますか?
どうもありがとうございました
nhibernate - NHibernate-同じエンティティを同じデータベース内の異なるテーブルにマップします
1対多の住所や連絡先など、他のいくつかのエンティティと、いくつかのフィールド(名前、年齢など)で構成される従業員エンティティがあるとします。このエンティティをマッピングして問題なく使用し、各部分を「Employee」、「EmployeeAddresses」、および「EmployeeContacts」テーブルに保存します。
ただし、この従業員の情報のほとんどすべてを大規模な計算に使用し、同じAddressオブジェクトリストとContactオブジェクトリストで構成される個別の「EmployeeInput」オブジェクトを用意しています(つまり、EmployeeオブジェクトとEmployeeInputsオブジェクトの両方にAddressエンティティとContactエンティティのリストがあります)。後で監査するために計算を実行するときに、この情報を保存する必要があります。このEmployeeInputエンティティをデータベースの「EmployeeInput」テーブルに保存します。
私たちが直面している問題は、住所リストと連絡先リストをどのように保存するかです。それらを「EmployeeInputAddresses」や「EmployeeInputContacts」のようなものに固定したいのですが、AddressエンティティとContactエンティティはすでにそれぞれ「EmployeeAddresses」と「EmployeeContacts」にマップされています。
新しい「EmployeeInputAddress」エンティティと「EmployeeInputContact」エンティティを作成せずに、これを実現する最も簡単な方法は、それぞれに個別のマッピングファイルを作成することです(フィールドは文字通り1つずつ複製されるため)。言い換えると、単一のエンティティAddressを、それが属する親オブジェクトに応じて2つの異なるテーブルにマップするにはどうすればよいですか(Employeeオブジェクトから保存する場合はEmployeeAddressesテーブル、EmployeeInputオブジェクトから保存する場合はEmployeeInputAddressesテーブル)。
nhibernate - NHibernate-これはどのような関連付けですか?
NHでオブジェクトグラフを永続化するのに問題があります。
私は(のような)これを持っています:
新しい親を作成し、新しいイベントを作成し、新しいイベントをParent.Eventsに追加し、Parent.LastEventを新しいイベントに設定しています。
NHに親を保存するように指示すると、最初に保存する必要がある一時オブジェクトに関するエラーが発生します。親とイベントの関係が明確でないためだと思います。
SQLが実行する必要がある方法は、nullのLastEventを使用してParentを挿入し、次にEventを挿入してから、Parent.LastEventを更新することです。
では、どうすればNHにこれを実行させることができますか?
c# - NHibernate - null 以外のプロパティが null または一時的な値を参照する
この例外が発生しています(下部に完全な例外があります):
私は多くのグーグルを行ってきましたが、そのエラーの最も一般的な原因は、関連付けが双方向であるが半分しか設定されていない場合です。次のように: Insurance.Patient = 患者は呼び出されますが、Patient.Insurances.Add(Insurance) は呼び出されません。実際、私はそのようなシナリオを持っていますが、Save を呼び出す直前にオブジェクトをチェックしました。Insurance.Patient と Patient.Insurances[0] の両方が適切なオブジェクトです。
この例外が参照しているように見えるもう 1 つの可能性は、一時的な値です。私の場合、すべてのオブジェクトは一時的なものなので、問題の根本はここにあるのではないかと疑っています。ただし、まだ何も保存されていないため、すべてが一時的なものである必要があります。私は、NHibernate が永続化されていないと不平を言うのではなく、永続化することを期待しています。
これが私のマッピングの一部です(流暢):
それで、何が問題になるのでしょうか?