問題タブ [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.
fluent-nhibernate - NHibernateの条件付き関係
ObjectType列によると、2つのテーブルとの関係が必要なテーブルがあります。
たとえば、ObjectType = 1の場合、列ObjectはTABLE1を指す必要があり、ObjectType = 2の場合、TABLE2を指す必要があります。
NHibernateマッピングまたはFluentNHibernateとしてこれを達成できますか?
そうでない場合は、両方のテーブルクラスに同じインターフェイスを使用することをお勧めしますか?(注:テーブルスキーマは完全に異なります)
nhibernate - Nhibernate: 多対多の関係を作成して 1 対 1 としてマップする
単方向の 1 対 1 の関係を持つ 2 つのアイテム A と B があります。(A には B が 1 つあります)
データベースでは、これらは ATable と BTable で表され、ABTable でリンクされています。(データベースのセットアップから、多対多の関係があるように見えますが、そうではありません。正規化の理由でこのように行われました)。
問題はこの設定によるものです。エンティティ間の多対多の関係として NHibernate をマップすることしかできませんでした。エンティティに1対1の関係を持たせる方法はありますか?
私が考えることができる最善の方法は、多対多の関係を持っているままにして、AエンティティにBのリストを返す2つのプロパティを持ち、マッピングを満たす2番目のマップされていないプロパティを取得することです私のアプリケーションを満たすために、リストの最初のB。-しかし、これはエレガントではないようです。
.net - NHibernate データ型 - NoYes ブール値
NHibernate マッピングで YesNo ブール型の逆の動作を取得する最良の方法は何ですか?
「Y」は偽を意味し、「N」は真を意味します。
NoYesタイプはありますか?カスタムタイプを書きますか?本当に簡単なこと?
ブール値を逆にする必要があるというこの問題は、40 以上のテーブルの少なくとも 1 つのフィールドに存在します。レガシーデータベースに適応しようとしています。
nhibernate - Fluent NHibernate を使用してテーブル インデックスを生成する
Fluent NHibernate を使用して、残りのデータベース スキーマと共にテーブル インデックスを生成することは可能ですか? 自動化されたビルド プロセスを介して完全なデータベース DDL を生成できるようにしたいと考えています。
hibernate - Hibernate: *.hbm.xml ファイルを別のフォルダーにマップする方法は?
hibernate.cfg.xml ファイルの同じフォルダーにいくつかの *.hbm.xml ファイルが配置されています。ここで、このフォルダーのサブフォルダーにある他の *.hbm.xml ファイルをマップしたいと思います。どうすればできますか?ありがとう!
これが私の一部ですhibernate.cfg.xml
:
これは私のAntファイルの一部です:
ここに私のフォルダ構造があります
[編集]
モーリスが提案したように、私は最初に試して失敗しました。行を次のように変更しました
それでも同じエラーが発生します:
そして、Mark が提案したように、自分の schemaexpoert に追加してみました。その後、私の「A.hbm.xml」も見つかりません。エラーを出す:
私の SchemaExportTask は次のようになります。
【解決済み】
結論は、私は本当に愚かだったということです。別のディレクトリにいることとは何の関係もありませんでした。テスト段階で一度に 2 つのことを変更していたので混乱し、それをすべて無害な「ディレクトリの変更」のせいにしました。みんなの時間を無駄にしてごめんなさい。
誰かが興味を持っているなら、ここに何が起こったのか. ローカル DTD ファイルを使用して XSLT 変換を行い、ローカル DTD ファイルを相対パスで XSL ファイルに指定しました。しかし、生成された hbm.xml ファイルを別のディレクトリに配置しました。そのため、SchemaExportTask は DTD ファイルを見つけることができず、新しい hbm.xml ファイルの解析に失敗しました。そして、なんらかのばかげた理由で、次のまったく異なるエラー メッセージが同じことを意味していると思いました....人々が正当な理由でエラー メッセージを書いたことを思い出させてくれた Mark に感謝します! 追加fileset
は今でも機能しませんが、エラーメッセージを読むことはわかっています...すぐに修正すると確信しています。=.=''
nhibernate - Nhibernate - リレーションシップのない結合テーブルを使用したクエリ
誰かがNHibernateでこれをやろうとしたかどうか疑問に思っていました.
次の表があります(簡易版)。
CITY: 都市 (varchar2) (PK) 州 (varchar2) (PK)
CITY_TL: 都市 (varchar2) (PK) 州 (varchar2) (PK) 言語 (char (2)) (PK)
LOCATION: 場所 (varchar2) (PK) 他の列。
ご覧のとおり、CITY と LOCATION の間には関係がありません。ただし、CITY.Province が LOCATION.Location と等しくなるように設定されています。したがって、次のようなクエリを実行できます。
都市 c から c.* を選択 c.city = ctl.city で city_tl ctl に参加 l.location = c.province で場所 l に参加
Hibernate でそれを行うにはどうすればよいですか? これは実行可能ですか?
CITY と LOCATION のマッピング ファイルは次のとおりです。
街:
位置:
誰かがこれに光を当てて、NHibernate でクエリがどのように見えるべきか教えてもらえますか?
nhibernate - Fluent NHibernate オブジェクト化された関係マッピング
私のシナリオ、オブジェクト化された関係を持つ多対多のマップをサポートするように NHibernate を構成する方法についての回答を探しています。
他の Person:s との関係を持つ Person:s のコレクションがあります。各関係には、関係のタイプを指定する属性があります。RDB では、これは、テーブルで指定された関係タイプを持つ多対多テーブルを使用することによって行われます。モデルは、「親友」や「大敵」などのより多くのタイプを許可することで拡張できます。
Person オブジェクトをクエリして、関連するすべての Person をタイプ別に返すことができるようにしたいと考えています
また
別の (拡張性の低い) 解決策は、クラスで静的に他の関係が存在することを指定することです。
現在、「Person」テーブルと「PersonPerson」テーブルを備えたレガシー データベースを使用する必要があります。「PersonPerson」テーブルは、関係タイプを整数として保持します。
以下のような構文を使用してこれを実行しようとしましたが、これまでのところ成功していません...
これを(流暢な)NHibernateでマッピングするためのヒント/解決策はありますか?
ブラジル
/イェンス
nhibernate - NHibernate-プロパティ/列の長さ属性を設定することに意味はありますか?
通常、プロパティ/列の定義は次のようになります。
NHibernateは、行を挿入/更新する前に、length属性を使用してデータを検証すると想定していました。残念ながら、それは無効な仮定のようです。では、NHibernateが長さ属性を何かに使用しているかどうかが問題になりますか?プロパティごとに設定するのは理にかなっていますか?
.net - NHibernate-12か月/1年およびDataBinding
これを処理する最良の方法は、DataGridの行ごとに1年を表示できるようにするために、12か月のレコードを1年のレコード/オブジェクトに常に「ピボット」する必要があるアプリケーションです。私は、ピボットを実行するために、いくつかの醜いT-SQLを使用してDataSetsでこの時点までこの作業を行ってきました。
現在、このアプリケーションをNHibernateにアップグレードしていますが、これが1つの問題点です。
例として、私が月に一度学生のグループに与えるテストがあるとしましょう。私のDDLは次のようになります。
DataGrid(学生/年ごとに1つのレコード)に次のフィールドを表示したい:
学生名、年、1月、2月、3月、4月、5月、6月、7月、8月、9月、10月、11月、12月
NHibernateでこの種のタスクに取り組む通常の方法は何ですか?どのように処理しますか?
nhibernate - Fluent NHibernate HasManyToMany および NotFound
次の FNH マッピング フラグメントがあります。
これにより、次の HBM が生成されます。
問題は、私がレガシ データを扱っていることです。つまり、「理想的ではない」とだけ言いましょう。一部のレコードには無効な ID が含まれているためnot-found="ignore"
、バッグ内の多対多タグに属性を配置する必要があります。FNHでこれを達成する方法はありません。
オンザコールはありますが、.NotFound.Ignore()
オンザコールReferences()
はありませんHasManyToMany
。
誰かが私に欠けているものを教えてもらえますか? 属性がレンダリングされた後/NHを構成する前に属性を「注入」するのがハックであっても、それが機能する必要があります。
前もって感謝します。
UPDATE gcores の回答は機能しません。間違ったタグに追加されます。詳細については、彼の回答に関する私のコメントを参照してください。