問題タブ [joined-subclass]
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: JoinedSubclass、HasMany
マッピングには FluentNHibernate (Automapping)、データ アクセスには NHibernate 3.2、データベースの生成には SchemaExport を使用しています。
とPrincipalの基本クラスであるクラスがUserありUsergroupます。
タイプPrincipalのプロパティがあります。
と の 2 セットがあります。CommonThingCommonThingCommonThingManagedUsersManagedUsergroups
-table (OK)、- table (WRONG)、- table (WRONG)の列CommonThingIdが生成されるようになりました。PrincipalsUsersUsergroups
サブクラス化されたテーブルではなく、テーブル内の列のみを生成するPrincipalsように FluentNHibernate を取得するにはどうすればよいですか?
編集: クラスとマッピング プリンシパル:
ユーザー:
ユーザー・グループ:
共通点:
規約:
プリンシパル マッピング:
CommonThing マッピング:
ラグワラッパー
_
nhibernate - NHibernate を使用して結合サブクラスから基本クラスにコレクションをロードする
次のようないくつかのプロパティと名前のコレクションを持つクラスがあります。
次に、次のようにクラス A を拡張するクラス B があります。
A と B は、それぞれの主キーでリンクされています。クラス B は、クラス A のマッピング ファイルで、結合されたサブクラスとして次のようにマップされます。
Criteria を使用して A のレコードを取得したい場合、正常に動作し、名前のコレクションがロードされます。しかし、サブクラス B のレコードを取得したい場合、名前のコレクションは (基本クラス A では) ロードされません。
次に、CreateCriteria を追加してコレクションをマップしようとしました。
次の SQL が生成されます。
そのため、名前を持つテーブルを、ベース テーブル A の外部キーではなく、サブクラス テーブル B の主キーにリンクしようとしています。次のようにする必要があります。
問題は、ICriteria ステートメントを使用して、NHibernate がサブクラスのコレクションを基底クラスにロードできるかどうかです。
ありがとう、
マーティン・ヴァン・デル・リンデン。
nhibernate - table-per-subclassを使用してサブクラスのサブクラスをマップしようとするFluent NHibernate
私は重い継承を持つアプリケーションを構築しており、A、B、C のクラスが存在する部分があります。
クラスA
クラス B : A
クラス C : B
次のように、クラス B のサブクラスごとのテーブル スタイルとしてサブクラス マッピングを実装しました。
これは完璧に機能します。ただし、次のようにCを実装したい場合:
エラーが発生します
Hibernate/NHibernate フォーラムを参照しましたが、この問題に対する回答が見つかりませんでした。
fluent-nhibernate - Fluent NHibernate 自動マッピング table-per-abstract-hierarchy / table-per-concrete-subclass
授業があります
その結果、次のテーブルが必要です。さまざまな IConvention を多数実装しようとしましたが、階層マッピング (table-per-abstract-hierarchy / table-per-concrete-subclass) でさえ失敗するようです。
私はすでに醜くて流暢なマッピングを持っていますが、いくつかの醜さを取り除きたいです
自動マッピングで同じ結果を得るにはどうすればよいですか?
nhibernate - 複数のサブクラスを結合し、基準を使用して列名を重複させるNHibernate
次のエンティティ構造があるとします。
基本クラス Document には、フィールドId、Name、CreateDateがあります。結合されたサブクラス DocumentA には、フィールドBook、Pagesがあります。DocumentB にはMagazine、Pagesがあります。
問題は、基準を使用してレコードを取得しようとするときです。
そのため、selectColumnsに2 つのPagesカラムがある場合、NHibernate は最初のカラムからのみデータを選択します。実際、このようなSQLクエリも生成します
基準を使用して私の問題を解決する方法を知っている人はいますか? ところで、この構造を変更するオプションはありません。このシステムでは、ユーザーは独自のクラスとネストされたクラスを定義できます。
inheritance - Play Framework 2 Ebean と InheritanceType を JOINED として
Google で調査した結果、私の問題を抱えている人を見つけられなかったので、ここに投稿しています。私のアプリケーションには、User (abstract)、Customer、Agency の 3 つのエンティティがあります。顧客と代理店はユーザーを拡張します。User のコードは次のとおりです。
問題は、生成されたスキーマが User、Customer、Agency のフィールドを持つ 1 つのテーブルのみを作成することです。これは通常、InheritanceType.SINGLE_TABLE (デフォルト) での動作です。
Ebean と @Inheritance アノテーションの使用に問題はありますか? InheritanceType.TABLE_PER_CLASS を試しましたが、うまくいきませんでした。JPAを使用してこの問題が発生したことはありません。誰でも助けることができますか?
どうもありがとう ;)
hibernate - Hibernate 基準でスーパークラス プロパティにアクセスするにはどうすればよいですか
Hibernate で基本的なクラスごとのテーブル ポリモーフィズムを使用しています。ので、私は持っています:
したがって、基本的にはサブクラスがたくさんあり、それぞれがサブクラス固有のデータを保持しています。キーはありますが、他のいくつかのプロパティに対する複合一意制約も必要です。
条件を作成する場合:
Invalid column name 'one'が原因でスタック ダンプが発生します。
SuperClass.class に基づいて基準を作成すると機能しますが、スーパークラスとサブクラスの両方に適用される制限を追加する必要があります (実際、このコードは他の多くのものの下に埋もれています)。
キーに到達できますが、両方の場所で宣言されています。基準のサブクラスからグローバル プロパティにアクセスできませんか? 何らかの方法でそれらを宣言する必要がありますか? それともある種のキャスト?
nhibernate - HQL-Query の where-condition でクラスを使用する
3 つの結合サブクラス (個人、会社、支店) を持つエンティティの連絡先があります。個人、会社、または支店のみを取得する必要がある連絡先で選択クエリを実行すると、次のことができます
連絡先から選択 a.class = Person
Person と Branch の場合、これは正しく機能しています。しかし、Branch 自身が (CompanyId を使用して) Company を参照しているため、今は参照しています。
連絡先から選択 a.class = Company
Company を CompanyId (Branch-Entity から) に置き換えます。
誰かがアイデアを持っていますか? HQL がクラス値を実際の列に置き換えるのを防ぐにはどうすればよいですか?
dictionary - サブクラスのエンティティで TreeMap を使用しようとしています
マップされたスーパークラスのサブクラス化に関するヘルプと、TreeMap のマップ方法に関するヘルプを見つけました。ただし、サブクラスで TreeMap を使用することをカバーするものはまったく見つかりません。状況は次のとおりです。私は、既存のアプリケーションに関数を追加しています。そのアプリケーションにはエンティティがマップされており、その特定のセットが階層を形成しています。たとえば、基本クラスを確立する があります。次に、要素を使用して個々のサブクラスをマップする多数の多数のサブクラスがあります。サブクラスはすべて要素を使用して、サブクラスの属性を保持する追加のテーブルを参照します。これは数年間機能しており、生活は一見良好です。
ここで私の作業が始まり、新しいサブクラス エンティティで TreeMap を使用する必要があります (他のすべてのエンティティと同じ基本クラスを拡張します)。そのため、最初に行うことは、他のサブクラスと同じ方法でマップを作成することです。の内側。
簡単に言うと、アプリを起動して Hibernate がマッピングを開始したときにエラーが発生しました。このエラーを調査した結果、休止状態のマッピング ファイルの DTD を確認することになりました。私の解釈によると、 内でどのような種類の Map も構成することはできません。
その同じ調査により、マップを含むことができることがわかりました。そこで、基本クラス マッピング内で構成を開始します。
これを行ったとき、コードやマッピングで見つけることさえできないシンボルを参照する奇妙なエラーが発生しました....どこでも!さらに調査を進めると、Hibernate リファレンス マニュアルの第 9 章に、Hibernate は要素と要素の混合をサポートしていないというリファレンスが見つかりました。だからそれもできない。
私の質問は、途中で見逃した解決策はありますか? 内部ではマップを使用しないため、使用している場合はサブクラスでマップを構成できないようです....そして、 Map は で構成できますが、私は現在のマッピング ファイルを調べて、すべてのエンティティをエンティティとして再マッピングするための多くのサポートをここで集めることができます。
誰かアイデアはありますか?私がこの権利を見ていない場合は、信じてください、私はそれを受け入れて学びます!
java - 子の一時的なゲッターとセッターを持つ Hibernate 結合サブクラス
既存の構造に休止状態の継承を追加しようとしています。したがって、3 つのエンティティを一般化する親クラスを追加する必要があります。問題は、子から HQL で継承されたフィールドを取得する必要があることです。このようなもの:
HQLのように実行しようとしているときに、このコードで最後に
「不明な列 childs.id」という SQL エラーがあります。
どうしたの?