問題タブ [one-to-one]
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の単方向1対1マッピングの問題
NHibernateを使用して一方向の1対1の関係を作成しようとしています。
例:注文は顧客によって行われます。
ここで、OrderN.Customer-fieldは、Customer.IDをFKとして格納することを目的としています。また、このフィールドには固有の制約はありません。
(OrderNテーブルには、SQLキーワードの競合を避けるために、このような名前が付けられています。)
問題は、このc#コードを実行した後、OrderN.Customer-fieldがnull値を格納していることです。
しかし、それは顧客のIDを保存することになっていた。すなわち1。
<property name="Customer" column="Customer" />
また、OrderN.hbm.xmlを追加すると、例外がスローされます。
この問題を解決する方法は?
それは1対1の関係ではないかもしれません。私は実際に<one-to-one />
タグがどのように使用されているかを理解しようとしています。誰かがこの点で私を助けてくれますか?
Customer.sql
Customer.cs
Customer.hbm.xml
OrderN.sql
OrderN.cs
OrderN.hbm.xml
メインプログラム
tsql - Sql Server で INFORMATION_SCHEMA または sys ビューを使用して 1 対 1 (1 対 ?) の関係を識別する方法
問題のドメイン http://www.freeimagehosting.net/uploads/6e7aa06096.png
ここに問題があります。TSQL と INFORMATION_SCHEMA または sys ビューを使用して、FK_BaseTable_InheritedTable などの 1:0-1 の関係をどのように識別できますか?
具体的な例として、単純な DTO を想像してみてください。FK_JoinTable_ParentTable は ParentTable オブジェクトの JoinTable のコレクションとしてレンダリングされますが、FK_BaseTable_InheritedTable は BaseTable オブジェクトの InheritedTable オブジェクトとしてレンダリングされます (たとえば、継承は悪い選択でした。しかし戻らない)。
私が思いつく最善の方法は、FK_JoinTable_ParentTable と同じ 1 対多です。キーを比較する(しようとしている)など、多くのアプローチを試しましたが、不足しています。
これがスクリプトです。問題は、INFO_SCHEMA または sys ビューを使用して、FK_JoinTable_ParentTable と FK_JoinTable_Child を 1 対多として、FK_BaseTable_InheritedTable を 1 対 1/なしとして識別することです。
リトマスは FK_BaseTable_InheritedTable と FK_JoinTable_ParentTable を区別できるようになっています
c# - Linq での 1 対 1 の関連付けとフィルタリング
SQL に 1 対 1 の関係を持つ 2 つのテーブル (Address
と) があるとします。Phone
対応する linq を sql クラスに作成し、関連付けを次のように変更しました。OneToOne
子オブジェクトをフィルタリングして両方のオブジェクトを取得したい。たとえば、正常に機能する次のクエリがあります。
次の作業を行う方法はありますか:
上記のPhone
クラス コンストラクターは、Number
プロパティを初期化します。発行されたクエリには、Phones テーブルを ID (主キー) でフィルター処理する句が含まれていますが、number 句は含まれていません。
Visual Studio で主キーとして設定Number
すると、where 句に含まれますが、id のパラメーター値が 0 であるため、検索では何も返されません。機能したとしてNumber
も、主キーであってはならないため、解決策ではありません。 .
java - Hibernateでの2つのテーブル0..nのマッピング
私はテーブルユーザーを持っています
2番目のテーブルSpecialUsersがあります。SpecialUsersテーブルでUserIdを2回発生させることはできず、UsersテーブルのユーザーIDのごく一部のみがSpecialUsersテーブルに含まれます。
HibernateでのUsersテーブルのマッピングは問題なく機能します
しかし、SpecialUsersテーブルのマッピングを作成するのに苦労しています。私が見つけたインターネットのすべての例(Hibernateのドキュメントなど)には、このタイプの自己参照がありません。私はこのようなマッピングを試しました:
しかし、エラーが発生しました
SpecialUsersテーブルをどのようにマップする必要がありますか?アプリケーションレベルで必要なのは、SpecialUsersテーブルに含まれているUserオブジェクトのリストです。
nhibernate - NHibernateとの1対1の関係としてのマップテーブルの継承
個人と住所(個人IDを使用)の間でモデル化された1対1の関係を持つデータベースがあります。しかし、NHibernateを使用してマップを作成する方法が見つかりません。
私のテーブル構造は次のとおりです。
そして、私は最後のクラスとしてこのようなものが欲しいです:
HasOne関係で試しましたが、PersonIdをアドレス識別子として再利用できませんでした。
ありがとう!
編集: FluentNHibernateを使用しているので、流暢なマッピングとXMLの両方で問題がないことを忘れました。
hibernate - @Where句を使用した@OneToOneのマッピング
次のようにエンティティをマッピングしようとしています
データが見つからない場合は1つだけ、またはnullを返すことを保証できますが、休止状態は@Where句を無視しているようです。
@OneToOneと@Where句の関係をマッピングするためのアイデアはありますか?
ありがとう
java - 休止状態を使用してエンティティの値の一部を別のテーブルに保存する方法は?
休止状態を使用して別のクラスとテーブルにいくつかのフィールドを永続化する簡単な方法はありますか?
たとえば、、、、、、、、フィールドを持つPerson
クラスがname
あります。クラスを次のようにしたい:surname
email
address1
address2
city
country
アドレスを別のテーブルに保存したい。これを達成するための最良の方法は何ですか?
編集:注釈を使用しています。私が説明した方法である必要はありません。ベスト プラクティスを探しています。
編集 2:アドレスの ID は何になりますか?
PS。Address を不変にする (値オブジェクトとして使用する) 方法があれば、それはさらに良いことですが、そうではないかもしれません。
fluent-nhibernate - Fluent NHibernate はテーブルを 1 対 1 で結合します
これは中程度の初心者の質問だと思います。私は NHibernate/FluentNHibernate を約 6 か月ほど使用しており、基本をかなり理解していると思います。今、私は少し先に進んでいます。これは文書化されていると確信していますが、Googleで数時間を費やしましたが、よくわかりません.
私は単純なクラスを持っています。それをSimpleと呼びます:
ステータスは、実際には、「ACTIVE」、「ON-HOLD」、および「CLOSED」の小さな値セットのいずれかに制限されます。DB スキーマには、RetrofitStatus という単純な読み取り専用テーブルがあります。
また、Simple テーブルには、Status が RetrofitStatus であることを確認するための外部キー制約があります。
RetrofitStatus テーブルの目的は、(SQL で) 実行できるように SortOrder 列を含めることです。
結果を表示順序に並べ替えます (たとえば、最初にすべての ACTIVE エントリ、次に ON-HOLD エントリ、次に CLOSED エントリ。これは、アルファベット順やその他の簡単に認識できる順序ではなく、論理的な順序で並べ替えているためです)。
私の質問は、FNH でそのオブジェクトと関係をどのようにモデル化するかということです。SortOrder プロパティを Simple 定義に追加して、それを表すビューを作成できますが、新しい Simple オブジェクトをテーブルに挿入しようとするとどうなるでしょうか? 明らかに、SortOrder プロパティを挿入しようとはしません。どうにかして NHib 要素を使用する必要があると思いますが、繰り返しますが、それがどこに必要なのか、挿入時に何が起こるのか、Fluent でそれを行う方法が明確ではありませんか?
試行錯誤して実験してみますが、彼らが何をしているのかを知っている人 (私は知りません) が、私を正しい方向に向けて時間を節約できるのではないかと思いました. ご協力いただきありがとうございます。
sql - NHibernate - たくさん持っていますが、欲しいのは 1 つだけです!
多くの電子メールを持つことができるユーザーがいます。これは List コレクションを通じてマップされます (ユーザーの IEnumerable Emails によって公開されます)。ユーザーごとに、メールの 1 つがプライマリになります (メールの「Boolean IsPrimary」プロパティ)。
NHibernate がユーザーのすべての電子メールをロードせずに、ユーザーからプライマリ電子メールを取得するにはどうすればよいですか?
次の 2 つのエンティティがあり、それぞれに対応するテーブルがあります
ユーザーの「Email PrimaryEmail」プロパティなどを、「IsPrimary=1」が何らかの形で設定されている電子メールにマップできますか? 多分Sqlフォーミュラを使用していますか?ビュー ? 一対一の関係?または別の方法ですか?
プライマリ電子メールを他の電子メールの 1 つに変更できるはずなので、それらをすべて 1 つのテーブルに保持し、IsPrimary プロパティを変更するだけです。
SQL 式を使用して、現在のプライマリ電子メールの IsPrimary プロパティを false に設定し、その後 PrimaryEmail プロパティを電子メールに設定すると、ユーザーの "PrimaryEmail" プロパティを最新の状態に保つことができますか? IsPrimary を true に設定し、新しいプライマリ電子メールにする必要がありますか? NHibernate は、Sql Formula によってロードされた「古い/現在の」プライマリ電子メールの変更を追跡しますか? SqlFormula を使用する場合の 1 レベル キャッシュと 2 レベル キャッシュはどうですか?
View を使用して機能するかどうかわかりませんか?次に、電子メールをコンポーネントのようにマッピングできると思いますか? View からロードされたときに Email データを更新するときに機能しますか?
より良い方法はありますか?
ユーザーと電子メールの間に双方向の関係があるため、多くの場合、もちろんプライマリ電子メールを照会し、電子メールの「ユーザー」プロパティを使用してユーザーを取得できます (逆の代わりに、ユーザーからユーザーへプライマリ電子メール)
誰かが助けてくれることを願っていますか?