問題タブ [nhibernate-cascade]

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 投票する
3 に答える
9930 参照

nhibernate - NHibernate に挿入前にカスケード削除を強制する

子オブジェクトの と 1 対多の関係を持つ親オブジェクトがありISetます。子オブジェクトには一意の制約があります (PageNumおよびContentID- 親への外部キー)。

私が遭遇した問題はContentPage、親コレクションから要素を削除し、同じトランザクション内で同じ一意のキーを持つ新しい要素を追加した場合です... NHibernateがに挿入を実行しようとするため、一意の制約違反が発生します消去。

NHibernate に最初に削除を強制する方法はありますか?

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

c# - Hibernate Cascade=save-update"?

免責事項:私はNHibernate初心者なので、この質問が理にかなっていることを願っています。2 つのクラスの間に次のような多対多の関係があります…</p>

両方のクラス マッピングでバッグを使用して多対多の関係を追加し、関連テーブルを定義しましたが、どのカスケード オプションを使用すればよいかわかりません。新しい Entity1 インスタンスを作成し、新しい Entity2 インスタンスをそのリストに追加し、Save を呼び出し、両方をデータベースに挿入できるようにしたい (逆も同様)。エンティティを削除するときは、子エンティティへの関連付けを削除する必要がありますが、子エンティティ自体は削除しないでください。cascade="save-update" を使用する必要がありますか?

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

nhibernate - Hibernate カスケード保存

これは、Comment.BlogArticleID に null を挿入しようとしています。

次の GenericADOException が表示されました。

次の内部例外が発生しました:「値 NULL を列 'BlogArticleID'、テーブル 'Relationships_Test_OneToMany.dbo.Comment' に挿入できません。列は NULL を許可しません。INSERT は失敗します。\r\nステートメントは終了しました。」

一方向のマッピングが必要です。まだ提供されている答えは、双方向マッピングについてです。

NHibernate カスケード保存はネイティブ ID ジェネレーターで動作しますか?

DB テーブル:

BlogArticle{ID, Name}。ID の場合、Identity=true。

Comment{ID, Name, BlogArticleID}。ID の場合、Identity=true。

コメント.hbm.xml

ブログ記事.hbm.xml

主要

リポジトリ

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

.net - NHibernate カスケードと生成された GUID ID - 保存時に子に対して生成されないのはなぜですか?

私は次のことを行います:

User.Cases のカスケードは All に設定されています。ただし、トランザクションがコミットされるまで @case.Id は設定されません。それは期待される動作ですか?コミットする前にIDを取得したいと思います。それはできますか?

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

nhibernate - NHibernate ManyToMany リレーションシップ カスケード AllDeleteOrphan StackOverflowException

マッピング テーブルを介して互いに ManyToMany 関係を持つ 2 つのオブジェクトがあります。ただし、保存しようとすると、スタックオーバーフロー例外が発生します。マッピングのコードは次のとおりです。

performermapping.cs を Cascade.None() に変更すると、例外はなくなりますが、イベント オブジェクトには関連付けられたパフォーマーがありません。

これを正しく書くにはどうすればいいですか?ありがとう

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

java - Hibernate: cascade question

In hibernate, there are many information about set cascade to "all, delete" and so on, but I want to know the effect of set cascade to "none"

now I have a class Parent, and it's child-class Child,

and in the file parent.hbm.xml(I omitted other content)

when save the parent, I don't want to cascade update his childs, so I set cascade="none". my question is : I set the cascade is "none", if I add a child#1 to parent, then I save the parent, can hibernate insert a new record to the table parenthaschildsTable, but not cascade the Child?

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

nhibernate - Win Server 2008 で Nhibernate がカスケード関係を更新しない

NHibernate と Fluent マッピングを使用して、WebForms アプリケーションを構築しています。

私たちのモデルでは、セットとの単純なReferences関係がありCascade.All()ます。エンティティを保存すると、NH は期待どおりに動作し、1) 参照されたエンティティを保存し、2) 子キーを設定して親エンティティを更新します。

ただし、この同じバージョンを本番サーバー (Win Server 2008) にデプロイし、アプリケーションを同じデータベースに向けると、異なる出力が生成されます。NH 1) 参照されたエンティティを保存し、..そして..それだけです。他には何も起こりません!!

テスト環境と本番環境は同じである必要があることはわかっていますが、現在展開中であり、これがどのように発生するのかわかりません。

アセンブリのアクセス許可などに関して、Win 2008 Server の NH に関する既知の問題はありますか? なんらかの理由でプロキシが正しく機能していないように見えますが、その理由はわかりません!

編集 1: NH ログ ファイルの分析 参照されているプロパティが Win Server 2008 で変更されたことを NH が認識していないことがわかりました。なぜですか? わかりませんが、ますますプロキシの問題のように見えます。

どんな助けでも本当に感謝しています。

フィリペ

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

join - カスケードルールを無視した流暢なNHibernate結合参照

従来のデータベースを使用しているWebアプリケーションのテスト容易性と保守性を改善するためにFluentNHibernateを使用していますが、この構造を適切にマッピングするのに問題があります。

ドメイン内の1つのエンティティを実際に表す2つのテーブルがあるため、結合を使用してそれらをマップし、3番目のテーブルは2番目のエンティティを表します。

DBテーブル:

エンティティ:

マッピング:

これはGetsで正常に機能しますが、Account.ReportType.Numberを変更してからSaveOrUpdate()Accountを変更すると、次のエラーが発生します。'DataTest.Model.ReportTypeのインスタンスの識別子が(old_value)から(new_value)に変更されました。 。

AccountのReportTypeへの参照を変更するだけで、ReportTypeへの参照にCascade.None()プロパティを設定することで、NHibernateはReportTypeインスタンスも保存しようとしないと思いましたが、それがどのように行われるかを誤解している必要があります。動作します。ReportType ReadOnly()を作成したり、ReportType ReadOnly()を参照したりしてみましたが、何も役に立たないようです。

何か案は?

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

nhibernate - nhibernate(またはhibernate)条件付きカスケード

私には、多くのセッションを持つプロパティEventを持つクラスUserがあります。基本的に、ユーザーはセッション時間が長いイベントに登録します。

ユーザーはイベントに登録できますが、セッション時間は純粋に有益です。

しかし、NHを使用してデータベースにユーザーを書き込むと、セッション時間も更新されます。イベントを作成/更新するときにセッション時間を挿入/更新する必要があることを知っているので、どうすればそれを防ぐことができますか。

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

asp.net - NHibernateの1対多の削除はカスケードされません

「写真」クラスと「コメント」クラスがあります。写真には複数のコメントを割り当てることができます。

これをHBMマッピングファイル内で1対多の関係として構成し、Photo.hbm.xmlマッピングファイル内の「コメント」バッグに対してcascade="all-delete-orphan"を設定しました。

ただし、1つ以上のコメントが関連付けられている写真を削除しようとすると、「DELETEステートメントがREFERENCE制約「FK_Comments_Photos」と競合しています」というメッセージが表示されます。

Photo.hbm.xmlのコメントバッグに対して他のいくつかのカスケードオプションを試しましたが、設定内容に関係なく、毎回同じ結果が得られます。写真を削除して、関連するコメントも自動的に削除できるようにしたいだけです。

これが私の写真のマッピングです(簡潔にするために編集):

これが私のコメントマッピングです(簡潔にするために編集):

コメントが関連付けられた写真を削除しようとすると、カスケードが発生しない理由について誰かが提案を持っていますか?

更新:カスケードを発生させる唯一の方法は、SQL Server内で「カスケード」とのこの関係に対して「ルールの削除」を構成することです。そうすることで、NHibernate内でカスケードアクションを指定する必要がなくなります。マッピング。ただし、これは私にとって理想的ではありません-NHibernateマッピング内でカスケード動作を理想的に構成できるようにしたいので、NHibernateに注意を払っていないように見える理由についてはまだ混乱していますカスケード設定?