問題タブ [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.

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

nhibernate - NHibernate 単一テーブルの継承

継承と NHibernate を使用してロール ベースの構造を設定するのに問題があります。

基本的には、ObjectInRole という抽象クラスが必要です。このクラス (および対応するデータベース テーブル) には、RoleId、ObjectId、および ObjectType (これが識別子列になります) が含まれます。識別子列は、ロールを取得するオブジェクト タイプになります。

簡単にするために、ロールのリスト (バッグ) を含むユーザー オブジェクトがあると仮定します。ObjectInRole のサブクラスとなる UserInRole クラスを持つことができるようにしたいと思います。

こんなバッグを作りました。

ObjectInRole のマッピングを次のように設定しました。

この設定を行って実行すると、User オブジェクトのコレクションに新しい Role を追加すると、ObjectType フィールドを保存できません。ObjectToRole テーブルに新しいエントリを保存しますが、ObjectType は null です。バッグを見ると、これはコレクションにロードされません。サブクラス構造が正しく設定されていないか、バッグが正しく設定されていないことに絞り込んだと思います。サブクラス UserInRole ではなく、コレクションを抽象クラスの束として扱っているだけかもしれないと思うので、私はバッグに傾いています。

いずれかの分野について、ご意見をお聞かせください。ありがとう!

編集:

そのため、バッグ (User.Roles.add(Role)) に追加して多対多でリンク オブジェクトを保持する代わりに、オブジェクトをテーブルに直接追加することにしました。新しいエラーが表示されます:

上記のクラスを見ると、User オブジェクトと Role オブジェクトが設定されています。id は ID フィールドであり、そのように指定されます。私は完全に途方に暮れています。

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

nhibernate - Hibernate多対1で同じアイテムを何度もフェッチする

私のモデルにはゲームがあります。各ゲームには、多対 1 の関連付けとしてマッピングされたイベントが関連付けられています。

ゲームのクエリを実行すると、指定された EventId (DB-PrimaryKey-id とは異なる) を持つイベント内で、NHibernate がすべてのゲームに対して次のクエリを発行します。

私のマッピング (およびマッピングから生成された DB) では、EventId に Unique 制約があります。N ゲームに対して同じクエリを N 回発行するのではなく、指定された EventId に対して 1 回だけイベントを取得する必要があることを NHibernate に伝えるにはどうすればよいですか?

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

fluent-nhibernate - 基本クラスでプライベート プロパティをマップするにはどうすればよいですか?

流暢な nhibernate を使用して、基本クラスでプライベート プロパティをマップすることは可能ですか?

私はこれを基本クラスで定義しています:

しかし、次のようにマッピングすると:

私は得るFluentNHibernate.UnknownPropertyException

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

nhibernate - NHibernate Fluent と属性

メンテナンスの問題を解決するために、いくつかの NHibernate 構成/マッピングをコードに移動することに興味があります。Fluent NHibernate と NHibernate.Mapping.Attributes のアドバイス/長所/短所/比較を提供できる人はいますか?

私は Java Hibernate アノテーションの経験があり、気に入っていますが、NHibernate 属性が同等かどうか、および Fluent が考慮すべき大きな利点/欠点を提供するかどうかに興味があります。

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

fluent-nhibernate - NHibernateのヌル値オブジェクト

値オブジェクトとしてアドレスを含む個人エンティティがあります。

NHibernateのドキュメントには、値オブジェクトのすべてのプロパティ(Address1、Address2など)がnullの場合、コンポーネント全体がnullとしてマップされる(つまり、Person.Addressがnullになる)と記載されています。これは、すべてのアドレスフィールドがnullの場合に問題を引き起こします。これは、私のページで(ASP MVCを実行している)次の理由で発生する可能性があるためです。

これはnull参照例外で壊れます。したがって、手動で行わずにデータベースからPersonをロードするときにすべてのフィールドが空の場合、Addressをnullではなく新しいAddress()オブジェクトとして設定するクリーンな方法を探しています。私は次のアイデアを割り引いた:

私の見解でヌルチェックを行う(yuk、恐ろしい)

データベースフィールドをnull許容不可にする(私はレガシーデータベースを扱っています)

誰かアイデアはありますか?

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

nhibernate - NHibernate SchemaExport を使用して ID シードを 0 に設定する

NHibernate の SchemaExport クラスを使用して、.hbm.xml ファイルからデータベースを生成しています。テーブルの ID シードを 1 ではなく 0 に設定する方法はありますか? ref テーブルの場合、すべての初期ステータス ID を 0 に設定することを好み、開発中に DB を再生成するたびにこの値をリセットする必要はありません。SQL Server 2005、NHibernate バージョン 1.2.1 を使用しています。

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

c# - nHibernate、指定された識別子を持つ行が存在しません

これに沿ったマッピングがあります。

現在、データベースでは、mdm_field テーブルの field_id が、関連する key_field テーブルに存在しない値を持つことがあるため、基本的に参照整合性が壊れています。このため、エンティティをロードすると、「指定された識別子を持つ行が存在しません」というエラーが表示されます。この状況で動作しないようにマッピングを構成するにはどうすればよいですか。

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

mysql - MySQL の Nhibernate マッピング ツール

nhibernate-mysql のマッピング ツールはありますか? マッピングツールが欲しい

  1. MySQL データベースを取り込みます
  2. 関連する hbm.xml ファイルの一般化
  3. 各テーブルにマップするデータ アクセス層クラスを作成します。

そのような利用可能なツールはありますか?

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

nhibernate - これをNHibernateでマップするにはどうすればよいですか

Survey クラスと Poll クラスの 2 つのクラスがあります。また、質問と質問選択のクラスもあります。これらをどのようにマッピングすれば、特定のテーブル形式を作成できますか。関連するクラスは次のとおりです。

私が撮影している結果のテーブルには、次のものが含まれます

できれば、Fluent NHibernate について本当に知りたいか、xml をマッピングするだけでもかまいません。

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

hibernate - 既存のテーブル/POJO への依存関係を持つ hibernate マッピング ファイル

hbm マッピング ファイルから作成された既存の作業データベースがあります。

オプション機能用にいくつかの新しいテーブルを作成したいと考えています。

1 つのオプションは、これらの新しいテーブルが常に存在することですが、テーブルと POJO は要求があった場合にのみ作成することをお勧めします。

私の問題は、これらのテーブル/POJO が既存のテーブル/POJO に依存していることです。マッピング ファイルを作成しましたが、既存のテーブルと新しいテーブルの作成/削除コマンドを POJO と共に作成する場合にのみ機能します。

この既存のテーブル/POJO for Group が作成スクリプトに表示されないようにすることはできますか?

以下の例では、グループは既存のテーブル/POJO です。

これを生成する ant ターゲットは以下であり、依存オブジェクトがリストされている場合にのみ機能します。

Group への依存参照がないと、エラーが発生します。

BUILD FAILED C:\projects\foo\db-build.xml:187: スキーマ テキストが失敗しました: テーブル DISCON_TEST からの関連付けは、マップされていないクラスを参照しています: uk.co.foo.domain.dfwv.Group

休止状態のバージョン:3.1.2