問題タブ [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 投票する
6 に答える
10148 参照

sql - 外部キーカスケードの複数のパスとサイクルの問題は何ですか?

SQL Server 2005 で、悪名高いエラー メッセージが表示されました。

テーブル YYY に FOREIGN KEY 制約 XXX を導入すると、サイクルまたは複数のカスケード パスが発生する可能性があります。ON DELETE NO ACTION または ON UPDATE NO ACTION を指定するか、他の FOREIGN KEY 制約を変更します。

現在、StackOverflow にはこのエラー メッセージに関するいくつかのトピックがあるため、解決策は既に得られています (私の場合はトリガーを使用する必要があります) が、なぜこのような問題が発生するのかについて興味があります。

私が理解しているように、彼らが回避したいシナリオは基本的に 2 つあります。サイクルと複数のパスです。循環とは、2 つのテーブルが相互にカスケードする外部キーを持つ場所です。OK、サイクルは複数のテーブルにまたがることもできますが、これは基本的なケースであり、分析が容易になります。

複数のパスは、TableA に TableB および TableC への外部キーがあり、TableB にも TableC への外部キーがある場合です。繰り返しますが、これは最低限の基本的なケースです。

これらのテーブルのいずれかでレコードが削除または更新されたときに発生する問題は見当たりません。確かに、どのレコードを更新/削除する必要があるかを確認するために、同じテーブルを複数回クエリする必要があるかもしれませんが、それは本当に問題なのでしょうか? これはパフォーマンスの問題ですか?

他の SO トピックでは、カスケードの使用を「危険」とラベル付けし、「カスケード パスの解決は複雑な問題です」と述べています。なんで?リスクはどこにありますか?問題はどこだ?

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

java - Hibernateの多対1マッピングで逆カスケード削除を定義する方法

私には2つのクラスAとBがあります。多くのBは単一のAと関連付けることができるため、BからAへの多対1の関係です。次のように関係をマッピングしました。

AにはBにマップされたものはありません。これを念頭に置いて、関連付けられているAが削除されたときにBを削除する予定です。これは、Bの多対1の関連付けでinverse = "true"を定義できれば可能でしたが、Hibernateではそれが許可されていません。

誰かがこれを手伝うことができますか?このためにAには何も書きたくありません。

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

sql - SQL Server: 自己参照 FK、ON DELETE CASCADE の代わりにトリガー

次の列 CAT_ID (BIGINT) NAME (VARCHAR) PARENT_CAT_ID (BIGINT) を持つ、CATEGORY という名前のテーブルで ON DELETE CASCADE を実行する必要があります。

PARENT_CAT_ID は CAT_ID の FK です。明らかに、素敵な SQL Server では、削除への循環または複数のパスを主張する ON DELETE CASCADE を使用できません。

よく提案される解決策はトリガーです。次のトリガーを作成しました。

子カテゴリを持つカテゴリを手動で削除すると、次の例外が発生します。

例外

トリガーの何が問題なのですか?

更新: 編集して申し訳ありませんが、別のテーブル CAT_SCH.ID の FK である別の列 CATEGORY.CAT_SCH_ID があります。この FK には CASCADE DELETE もあります。つまり、CAT_SCH を削除すると、その CATEGORies も削除する必要があります。したがって、トリガーを定義すると、次のエラーが発生します。

テーブル 'CATEGORY' に INSTEAD OF DELETE または INSTEAD OF UPDATE TRIGGER 'TRG_DEL_CATEGORY_WITH_CHILDREN' を作成できません。これは、テーブルにカスケード DELETE または UPDATE を持つ FOREIGN KEY があるためです。

何か案は?

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

jquery - Jquery.cascade プラグインは Ajax URL の形式を変更します

Asp.Net MVC アプリケーションでjQuery.Cascadeプラグインを使用しています。私はそれをすべて次のように機能させました:

ただし、これが起動すると、次のリクエストを介してコントローラーのアクションが呼び出されます。

私が好むのは:

提供されたには、次のコメントがあります。

親の select の選択された値を 'val=' として url に渡しますが、完全な ajax オプション ハッシュを受け入れるので、他のデータも追加できます

したがって、私が達成したいことは可能であると推測していますが、jQuery と Ajax の初心者として、これを行う方法について途方に暮れています。誰でも助けることができますか?

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

.net - Nhibernateカスケード

Nhibernateのカスケードとはどういう意味ですか?

カスケードには多くのオプションがあります。

  • 消去
  • 全て
  • AllDeleteOrphan
  • DeleteOrphan
  • SaveUpdate

これらを例とその違いで説明できますか?

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

nhibernate - NHibernateカスケードなしまだ関連エンティティを更新していません

次に、Fluent NHibernateとその自動マッピング機能を使用して、次の簡略化されたPOCOクラスをマッピングしています。

次に、次のマッピングをオーバーライドして、WebページからWebpageTypeへのカスケードを明示的に設定しません。

純粋なNHibernateリーダーの場合、fluentによって生成されるxmlマッピングは次のとおりです。

問題は、更新がWebページを介してWebpageTypeにカスケードされないことをテストするときに発生します。基本的には、カスケードされます。

私は次のテストを行っています:

上記のテストはグローバルトランザクションにラップされています。

テストは失敗し、NHibernateは関連するWebpageTypeの名前の更新を実行します。削除および保存(新規作成)カスケードは正しく機能し、カスケードされません。

カスケードを誤解したか、ロジック/テストに問題がありますか?

任意のヘルプ/アドバイスをいただければ幸いです。ありがとう。

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

c# - NHibernateDefinitiveCascadeアプリケーションガイド

クラス構造、HBM、およびNHとのすべての関係に対する各カスケード設定でのアクションの影響の例を含む、NHibernateのすべてのカスケード設定への決定的なガイドを備えたインターネットリソースはありますか。

また、状態テーブルを設定して状態をカスケード削除したり、CreatedBy Userプロパティを持つオブジェクトを削除したりするなど、一般的な関連付けを最も正確に行う例があると便利です。カスケードなどでユーザーを削除してしまうことはありません。

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

cocoa - Core Data で管理対象オブジェクトを適切にカスケード削除するにはどうすればよいですか?

A、B、C の 3 つのエンティティを持つコア データ モデルがあります。A は B と 1 対多の関係を持ち、B は C と多対多の関係を持ちます。A の削除ルール -> B は「Cascade」、B -> A は「No Action」です。B -> C の削除ルールは「アクションなし」、C -> B は「拒否」です。

A エンティティの削除に問題があります。私がしたいことは次のとおりです。

  1. A のインスタンスを削除します (を使用deleteObject:)
  2. 削除は、A に関連付けられているすべての B に伝播します (「カスケード」削除規則のため)。
  3. A に関連付けられているすべての B が削除されます
  4. 関連する B が削除された C に属するすべての関係も削除されます。

少し混乱するかもしれませんので、言い換えてみましょう: A が削除されると、関連するすべての B が削除されます。そして、これらの B を参照する C は、それ以上 B を参照してはなりません。

私のテストでは、「カスケード」削除ルールがまったく機能していません。processPendingChangesA を削除すると、その直後に呼び出します (削除が完了したことを確認するためだけに)。次に、削除前と削除後の NSManagedObjectContext にあった A と B の数を比較します。A のインスタンスは適切に削除されました (A の合計数は、削除前よりも 1 つ少なくなりました)。ただし、B の数は同じままです。そのため、「カスケード」削除ルールが守られていないようです。

A -> B の関係を手動で調べて、各 B を手動で削除できることはわかっています。「カスケード」削除ルールの使用に関する情報は大歓迎です。

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

java - 多対 1 の休止状態では、子が削除されるとすべての親が削除されます

国と州のオブジェクトがあります。私は州から国への一方向の多対一の関係を持つつもりです。以下のようにマッピングを定義した国の状態への参照を保存したくありません。State オブジェクトを 1 つでも削除すると、すべての国が削除されます。

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

java - Hibernate 双方向多対多カスケードの混乱

私は休止状態の初心者で、探しているカスケード動作を取得する方法が完全にはわかりません。

互いに双方向の多対多マッピングを持つ 2 つのクラス A と B があるとします。A は所有者側で、B は逆側です (用語が正しいことを願っています)。

A オブジェクトを削除すると、それを含む B オブジェクトが更新され、その逆も同様になるように、正しいカスケード タイプを選択したいと考えています。

ここで必要なカスケード タイプはどれですか?