問題タブ [discriminator]

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 に答える
320 参照

entity-framework - Backupfile からの EF6 コード ファースト Discriminator

EF を使用していない古いデータベースのバックアップ ファイルがあります。ここで、階層ごとのテーブルを持つ EF コードの最初の流暢な API を使用して新しいデータベースを作成します。そのため、null 不可の識別子列があります。私のバックアップファイルにはディスクリミネーターがありません。そのため、古いバックアップ ファイルを復元しようとすると、識別子列に NULL 値を挿入しようとするため、例外がスローされます。

ディスクリミネーター列に NULL を挿入するときに (EF の助けを借りて) デフォルト値を設定することは可能ですか?

編集: 復元はデータセットを使用して行われます。データセットに値を追加することはできますが、そのようにしたくありません。

0 投票する
0 に答える
1286 参照

hibernate - 階層内の各親のディスクリミネーターを使用した結合継承戦略でのマルチレベル継承

以下の私のクラスを検討してください

製品(抽象ルート クラス)

Car (Product を拡張する別の親クラス)

Speeder (Car を拡張する階層の最後の子)

JPAがディスクリミネーターを使用してオブジェクトモデルをデータモデルにマップするとき、単一の親から子への階層でディスクリミネーターを使用しても問題ありませんでした。ディスクリミネーターの値は適切に設定されていますが、Speeder-extends- Car-extends-Product、ディスクリミネーターの値または適切に機能していない、

商品表 車表 スピーダーテーブル

単一の継承(子から親など)で識別子を使用して結合継承のみを使用している場合、識別子の値は尊重された列に適切にマップされていますが、別の階層を追加したため、スピーダーの識別子の値Product テーブルの discriminator 列に配置され、Car テーブルのdiscriminator 列はnull 値として残されています。ここで達成しようとしていることを理解していただければ幸いです。これは可能ですか? 回避策はありますか?非常に多くの例がありますが、この結合された継承テーブルのような例である、より深い階層を示すものを正確に見つけることはできませんしかし、より深い階層では、周りの例は単純な階層しかなく、この種の戦略を使用する他の例とほとんど同じです. どんな助けや啓発も大歓迎です。

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

c# - Fluent NHibernate を使用して、親関係の列を識別するにはどうすればよいですか?

私はこのエンティティ関係を持っています。

UserGroupは基本クラスであり、 によって識別されるいくつかの派生クラスがあることに注意してくださいUserGroup.GroupTypeクラス階層ごとの単一テーブル継承マッピング戦略を使用しています。

流暢な NHibernate マッピング:

これが私が達成したいことです:
UserGroupMember も基本クラスにし、ディスクリミネータで識別させたいと思いUserGroup.GroupTypeます。これは可能ですか?

この質問を別の言い方をすると、次の行を追加できれば素晴らしいと思います。

UserGroupMemberMap

0 投票する
0 に答える
419 参照

mongodb - Grails、GORM、MongoDB: 識別子列の値は無視されます

私は Grails プロジェクトに取り組んでおり、MongoDB でドキュメントを読み書きするために GORM を使用したいと考えています。実装したい特定のシナリオがあり、これを2〜3日間機能させようとしていますが、何が間違っているのかわかりません。Grails のドキュメント、Web 上の多くの関連記事を読みましたが、まだ何もありません。

簡単にするために、次のような単純なシナリオに取り組んでいます。

私は4つのドメインクラスを持っています:

だれかグルービー

Animal.groovy

Dog.groovy

Cat.groovy

ここで、 と呼ばれる Service クラスにCrudService、たとえば というメソッドがfoo()あり、そのメソッドで新しいSomeoneオブジェクトを作成し、それを Mongo データベースに保存します。

保存されたものを確認するために mongoDB コレクションを確認すると、次のように表示されます。

ご覧のとおり、ドキュメントは保存されましたが、識別子の列名 (および値) は完全に無視されました。ドキュメントは、値"_class"を列名 (デフォルトの識別子列名) として保存し、クラス名 (この場合はDog ) を値として保存しました。

誰かが私を助けて、私がここで間違っていることを教えてもらえますか?

GORM のディスクリミネータ機能が RDBMS では正しく機能するが、NoSQL データベースでは機能しない可能性はありますか?

(現在、私の問題の解決策を提供できるかどうかを確認するために Morphia も検討していますが、Grails のデフォルトの ORM であるため、GORM を使用することをお勧めします)。

ご提案いただきありがとうございます。