問題タブ [one-to-many]

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.

0 投票する
1 に答える
343 参照

nhibernate - (流暢)NHibernate:IDictionaryのマッピング

私はこれについて多くの投稿を見つけましたが、直接私を助けてくれるものはないようです。また、FluentNHibernateの開発のさまざまな段階で、ソリューションが機能するか機能しないかについて混乱が生じているようです。

私は次のクラスを持っています:

私の質問は次のとおりです。

  1. MyEnumの別の(3番目の)テーブルが必要ですか?
  2. MyEnumタイプをマップするにはどうすればよいですか?するべきか?
  3. Fooのマッピングはどのように見えるべきですか?

HasMany(x => x.Values).AsMap( "MappedClass")のマッピングを試しました...結果は次のようになります:NHibernate.MappingException:関連付けはマッピングされていないクラスを参照します:MyEnum

0 投票する
3 に答える
12705 参照

android - Android:SQLiteの1対多の設計

SQLite誰もが使用するための1対多のマッピングを実装する方法について良いアドバイスを持っていContentProviderますか?見てみると、挿入するデータを含むパラメータが含まれUri ContentProvider#insert(Uri, ContentValues)ていることがわかります。ContentValues問題は、現在の実装ではメソッドをContentValuesサポートしておらずput(String, Object)、クラスがfinalであるため、拡張できないことです。なぜそれが問題なのですか?これが私のデザインです:

1対多の関係にある2つのテーブルがあります。これらをコードで表すために、2つのモデルオブジェクトがあります。1番目はメインレコードを表し、2番目のオブジェクトインスタンスのリストであるフィールドがあります。ContentValuesこれで、現在のオブジェクトから生成されたものを返すヘルパーメソッドがモデルオブジェクト#1にあります。プリミティブフィールドにContentValues#putオーバーロードされたメソッドを入力するのは簡単ですが、リストがうまくいきません。したがって、現在、2番目のテーブル行は単一の文字列値であるため、コンマで区切られた文字列を生成し、それを内部のString[]に再解析しContentProvider#insertます。それは不愉快に感じるので、誰かがそれをよりクリーンな方法で行う方法をほのめかすことができるかもしれません。

ここにいくつかのコードがあります。モデルクラスからの最初:

ContentProvider#insertこれがメソッドのスリム化バージョンです

0 投票する
4 に答える
200 参照

database - テーブル間の1対多の関係でプライマリ関係を指定するための規則は何ですか?

テーブル間に単純な1対多の関係を持つデータベーススキーマを設計する方法を理解しています。そのセット内の特定の関係を主要な関係として指定するための規則またはベストプラクティスが何であるかを知りたいです。たとえば、1人の人が多くのクレジットカードを持っています。私はそれをモデル化する方法を知っています。それらのカードの1つをその人のプライマリとしてどのように指定しますか?私が思いついた解決策は、せいぜいエレガントではないようです。


私の実際の状況を明らかにしようと思います。(残念ながら、実際のドメインは物事を混乱させるだけです。)私は2つのテーブルを持っており、それぞれに多くの列があります。たとえば、PersonとTaskです。いくつかのプロパティしかないProjectもあります。1人の人には多くのプロジェクトがありますが、主要なプロジェクトがあります。1つのプロジェクトには多くのタスクがありますが、1つのプライマリタスクに代替のタスクがある場合もあれば、プライマリタスクがなく、代わりに一連のタスクがある場合もあります。プロジェクトの一部ではないタスクはありませんが、厳密に禁止されているわけではありません。

過度の複雑さや純粋な悪を導入せずに、プライマリプロジェクト、プライマリタスク、およびタスクシーケンスをすべて同時にモデル化する方法を理解することはできないようです。

これは私がこれまでに思いついた中で最高です:

単純な概念にはテーブルが多すぎるようです。


これが私が見つけた非常によく似た状況を扱っている質問です:データベース設計:循環依存

残念ながら、この状況をどのように処理するかについてはコンセンサスが得られていないようで、「正しい」答えはデータベースの整合性チェックメカニズムを無効にすることでした。クールではありません。

0 投票する
1 に答える
292 参照

nhibernate - 結合テーブルを使用して 1 対多の関係をマップするにはどうすればよいですか?

NHibernate で以下をマッピングするにはどうすればよいですか?
私のエンティティと ERD は以下のとおりです。多対多の関係をマップする方法は知っていますが、結合テーブル ReportTargets を Datapoint テーブルにマップする方法がわかりません。ReportTargets エンティティ モデルは厳密にはドメイン エンティティではないため、存在しないことがわかります。ここでの最善の解決策は何ですか? 私はNHibernateの初心者なので、簡単にどうぞ..:)ありがとう

http://img341.imageshack.us/img341/3769/entities.gif

0 投票する
1 に答える
899 参照

nhibernate - NHibernate コレクションにデータが読み込まれないが、データがデータベースに挿入される

ここで NHibernate を使って何が間違っているのかわかりません。2 つのテーブルにマッピングされた 2 つのマッピング ファイルがあります。マッピングを介してデータベースにデータを挿入することはできますが、次のコードを呼び出すと 0 が返されますが、テーブルに正しい外部キーが入力された子行が表示されます。これは遅延読み込みの問題ですか? ありがとう。

これが私のマッピングファイルです。

AnnualReport クラス

MonthlyReport クラス

0 投票する
2 に答える
2203 参照

java - 「Hibernateの背後」に移動して、関連付けられたエンティティなしで外部キー値を更新します

更新:私は反対のことをすることで問題を「解決」することになりました!これで、エンティティ参照フィールドが読み取り専用(insertable = false updatable = false)に設定され、外部キーフィールドが読み取り/書き込みに設定されました。これは、新しいエンティティを保存するときに特別な注意を払う必要があることを意味しますが、クエリを実行すると、エンティティのプロパティが解決されます。


ドメインモデルに双方向の1対多の関連付けがあり、永続性プロバイダーとしてJPAアノテーションとHibernateを使用しています。これはほとんどあなたの標準的な親/子構成ですが、1つの違いは、親の外部キーを、次のように、親インスタンスへの参照と一緒に子の個別のプロパティとして公開することです。

これはほとんどの場合問題なく機能しますが、最初に偽の親を作成せずに、parent_id列に無効な値を入れたい場合が多くあります(レガシー)。

残念ながら、Hibernateは、がparentId原因でフィールドに割り当てられた値を保存しませんinsertable=false, updatable=false。これは、同じ列が複数のプロパティにマップされている場合に必要です。JDBCにドロップダウンしたり、インターセプターを実装したりせずに、「Hibernateの後ろに隠れて」そのフィールドに値を忍び込ませる良い方法はありますか?

ありがとう!

0 投票する
2 に答える
2734 参照

sql - MySQLで1対1の関係を1対多の関係に変更するにはどうすればよいですか?

現在、YoutubeOAuthトークンの1対1の関係を含むユーザーテーブルがあります。しかし、私は今、複数のビデオサイトをサポートし、これを1対多の関係に分割したいと考えています。

新しいテーブルを設定しました。

トークン-列:id、site、username(Youtubeでのユーザーのユーザー名)、oauth_token、oauth_secret

user_tokens-cols:id、user_id、token_id

現在のユーザーのテーブルからこれらのテーブルにSELECTして、user_tokensテーブルに適切なIDを設定しながら、username、oauth_token、およびoauth_secret列をインポートする方法はありますか?

過去に私はこれを行うための短いPHPスクリプトを作成しましたが、MySQLで直接実行できるかどうかについて常に興味がありました。

0 投票する
4 に答える
240 参照

sql - 他の 2 つのテーブルが 1 対多の関係にあるテーブルに適切にインデックスを付けるにはどうすればよいですか?

「customers」、「companys」、「phone_numbers」という 3 つのテーブルがあるとします。顧客と企業の両方が複数の電話番号を持つことができます。phone_numbers をインデックス化する最良の方法は何ですか? customer_id と company_id の両方を持ち、そのうちの 1 つを null のままにしますか? phone_numbers と 1 対多の関係を持つテーブルが 3 つ以上ある場合はどうなりますか?

0 投票する
1 に答える
1656 参照

java - base=1でマップされたHibernateIndexColumnの値0

Oracleデータベースに対してHibernateAnnotations3.4.0GAおよびHibernateCore3.3.2.GA(現在の安定バージョンとも呼ばれます)を使用しています

base = 1の1対多のマッピングがあり、これは非常に長い間正常に機能しましたが、先週、データベースにインデックス列に値0が含まれているエントリがいくつか見つかり、あらゆる種類の問題が発生しました。

だから私の質問は:それがbase = 1でマップされているときに、1対多の関係のインデックス列に0の値を取得する方法を知っている人はいますか?おそらく、ジェネリックスまたはMappedSuperclassの使用に関連しています。

継承も含まれるため、コードはかなり複雑であることに注意してください。

以下は、クラスの関連する部分です。

実際のクラスはこれらを継承し、型パラメーターの具象クラスを提供します。それらはエンティティとしてマップされます。また、id列とversion列、およびその他の多数の属性と参照を指定しますが、手元のマッピングとは関係ありません。