問題タブ [hibernate-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.
java - しばらくすると休止状態が機能しなくなるのはなぜですか?
このようなプロパティを使用したマッピングを使用して、Apache tomcat 7 (違いがある場合は 7.0.34) でシステムを実行しています。
保存関数を呼び出すとうまく機能しますが、しばらくすると、まったく同じコードでまったく同じデータが例外をスローします
そして、(時々) Tomcat サービスを再起動するまで、インスタンスを保存しようとするたびにその例外をスローし続けます。
なぜこれが起こっているのかについて何か考えがありますか?
hibernate - Hibernate 汎用複合キーとカスケード保存
データベースで使用する複合キーの汎用クラスの作成に問題があります。複合キーを使用しているすべてのテーブルには関係 ManyToOne があり、2 つの FK を使用します。私は次のクラスを書きました:
CompositeKey を使用したクラスの例:
ここでの質問:
1. このアプローチは正しいですか? それとも、エンティティごとに個別の複合キーを作成する方がよいでしょうか?
2.このアプローチが正しい場合、注釈 @ManyToOne を CompositeKey クラスから TestClass に移動するにはどうすればよいですか?
3. この場合、カスケードを使用できますか? 複合キーを持つエンティティを保存する際に、複合キーに含まれるエンティティを保存したいと考えています。
返信ありがとうございます。
hibernate - クリーンアップで削除するHibernate3多対多カスケード
Hibernate 3.6 でのカスケード削除に問題があります。Menu と Item という 2 つのエンティティ クラスの間に多対多の関係があります。これは一方向の関係であることに注意してください。Menu インスタンスには、それが持つアイテムのセットへの参照があります。しかし、Item インスタンスは、それが属する Menu インスタンスについて知りません。
私の要件:テーブルの行は、Item
少なくとも 1 つのMenu
エントリが参照している場合にのみ、データベースに存在する必要があります。つまり、どのメニューにも属さない項目はデータベースに存在してはなりません。
ここで、次のシナリオを想定します。
menu1 には [item1, item2] があります
menu2 には [item1] があります
を呼び出すsession.remove(menu1)
と、Hibernate は と の両方item1
をテーブルitem2
から削除しようとしItem
ます (この操作は実際にはデータセットによって拒否されます)。item2
を使用する別のメニューがあるため、Hibernate に のみを削除してもらいたいitem1
。
cascade
not include にすることで、メニューが削除されたときに関連するアイテムが削除されるのを防ぐことができることを認識していますCascadeType.DELETE
。しかし、私はこの動作も望んでいません。item2
データベースから削除したいのです (メニューがそれを使用していないため、つまり、Menu_Item テーブルに関連付けがないため)。
Hibernateでこれを達成するのに最適なものは何ですか?
java - org.hibernate.HibernateException: cascade="all-delete-orphan" でコレクションへの参照を変更しないでください
永続オブジェクトをコピーして変更し、永続化 (新しいレコードを挿入) しようとしていますが、機能しません!
例えば:
オブジェクトA(永続)
オブジェクト B = コピー (A)
変更 B
挿入 B // エラー
私のコードの断片に従ってください、とにかくありがとう!
マッピング:
スタックトレース:
java - Hibernate を使用して複雑なオブジェクトを適切に削除するには?
これが問題です。データベースから Catalog オブジェクトを削除しようとすると、Hibernate は関連する Type および Genre Id を持つすべての Catalog オブジェクトも削除します。たとえば、Type.id=1 および Genre.id=1 のカタログを削除する場合、Hibernate はそのような ID を持つすべてのカタログを削除します。それを修正する方法はありますか?id=1 の Type オブジェクトと Genre オブジェクトを削除せずに、Catalog オブジェクトを 1 つだけ削除する必要があります。
Catalog オブジェクトを削除する私のメソッド