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

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

java - しばらくすると休止状態が機能しなくなるのはなぜですか?

このようなプロパティを使用したマッピングを使用して、Apache tomcat 7 (違いがある場合は 7.0.34) でシステムを実行しています。

保存関数を呼び出すとうまく機能しますが、しばらくすると、まったく同じコードでまったく同じデータが例外をスローします

そして、(時々) Tomcat サービスを再起動するまで、インスタンスを保存しようとするたびにその例外をスローし続けます。

なぜこれが起こっているのかについて何か考えがありますか?

0 投票する
0 に答える
307 参照

hibernate - Hibernate 汎用複合キーとカスケード保存

データベースで使用する複合キーの汎用クラスの作成に問題があります。複合キーを使用しているすべてのテーブルには関係 ManyToOne があり、2 つの FK を使用します。私は次のクラスを書きました:

CompositeKey を使用したクラスの例:

ここでの質問:
1. このアプローチは正しいですか? それとも、エンティティごとに個別の複合キーを作成する方がよいでしょうか?
2.このアプローチが正しい場合、注釈 @ManyToOne を CompositeKey クラスから TestClass に移動するにはどうすればよいですか?
3. この場合、カスケードを使用できますか? 複合キーを持つエンティティを保存する際に、複合キーに含まれるエンティティを保存したいと考えています。

返信ありがとうございます。

0 投票する
0 に答える
68 参照

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

cascadenot include にすることで、メニューが削除されたときに関連するアイテムが削除されるのを防ぐことができることを認識していますCascadeType.DELETE。しかし、私はこの動作も望んでいません。item2データベースから削除したいのです (メニューがそれを使用していないため、つまり、Menu_Item テーブルに関連付けがないため)。

Hibernateでこれを達成するのに最適なものは何ですか?

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

java - org.hibernate.HibernateException: cascade="all-delete-orphan" でコレクションへの参照を変更しないでください

永続オブジェクトをコピーして変更し、永続化 (新しいレコードを挿入) しようとしていますが、機能しません!

例えば:

オブジェクトA(永続)
オブジェクト B = コピー (A)
変更 B
挿入 B // エラー

私のコードの断片に従ってください、とにかくありがとう!

マッピング:

スタックトレース:

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

java - Hibernate を使用して複雑なオブジェクトを適切に削除するには?

これが問題です。データベースから Catalog オブジェクトを削除しようとすると、Hibernate は関連する Type および Genre Id を持つすべての Catalog オブジェクトも削除します。たとえば、Type.id=1 および Genre.id=1 のカタログを削除する場合、Hibernate はそのような ID を持つすべてのカタログを削除します。それを修正する方法はありますか?id=1 の Type オブジェクトと Genre オブジェクトを削除せずに、Catalog オブジェクトを 1 つだけ削除する必要があります。

Catalog オブジェクトを削除する私のメソッド