Java、Hibernate、CascadeTypesおよび「ガベージコレクション」孤児

マールテンファンレーネン:

どの種類のカスケードタイプを使用できますか。また、参照する「もの」がなくなったときにHibernateがイメージを自動的に削除するようにするにはどうすればよいですか?(基本的にHibernateでのガベージコレクションの一種です)

データベース:Thingテーブル-画像テーブルは多対1なので、多くのモノが同じ画像を参照できます。

エンティティ:モノ、イメージ

それは多対一なので、たとえば5つのものが1つの画像に関連しています。

今、私はします:

public void delete(Thing thing)
{
    if (countReferences(thing.getImage()) > 1)
    {
        thing.setImage(null);
    }
    getSession().delete(thing);
}

countReferencesを実行せず、関係にCascaseType.REMOVEがある場合、HibernateはImageも削除しようとします。データベース内の制約は、画像がまだどこかで参照されているときに発生し、例外が発生します。

それで、要するに、それを参照している最後のものが削除されたときにhibernateにImageを削除するように指示するにはどうすればよいですか?

org.hibernate.event.PreDeleteEventListener

おそらく解決策ですか?

yair:

Hibernateドキュメントを詳しく調べたところ、そのような機能はサポートされていないようです。サポートされていない理由は理解できたと思いますが。

ではone-to-many、参照、コレクション内のエンティティをしていると考えられるが所有するコレクションを含むエンティティによって(参照24.1。コレクションに関するAの注意を)。

それとはmany-to-one対照的に、参照にはそのような影響はありません。参照されるエンティティは、正当に、参照するエンティティによって所有されていませんしたがって、すべての参照Imageが削除されたとしても、それImageも削除する必要があると考える理由はありませんImage完全に独立したファーストクラスのエンティティです。

したがって、あなたのケースでは、適用的に削除を強制することからの脱出はないようです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Javaメジャーおよびマイナーガベージコレクション

分類Dev

リクエストおよびガベージコレクション中のWCF非同期

分類Dev

.javaファイルを動的にロードおよびアンロードするJava、ガベージコレクション?

分類Dev

Java、JIT、およびガベージコレクタの効率

分類Dev

Javaでのガベージコレクションの理解、およびヒープスペースの誤用を防ぐ方法

分類Dev

ネストされた強い参照を含むオブジェクトへの弱い参照、およびガベージコレクション

分類Dev

Javaガベージコレクション

分類Dev

Javaのガベージコレクション

分類Dev

SML、Java、C、Pascalでのガベージコレクション

分類Dev

Javaガベージコレクション

分類Dev

Java-値渡し-ガベージコレクション

分類Dev

ガベージコレクション-Java

分類Dev

Java:ガベージコレクションの適格性

分類Dev

java.nio.ByteBuffer-allocateDirectとガベージコレクション

分類Dev

Goでの構造体のスタックとヒープの割り当て、およびガベージコレクションとの関係

分類Dev

QueryDSL、Hibernate、およびSpring DataJPAでのレイジーコレクションのロードの回避

分類Dev

Javaコレクションとガベージコレクター

分類Dev

ガベージコレクターとコレクション

分類Dev

Javaガベージコレクションログメッセージ

分類Dev

Javaでのフラグメントのガベージコレクション

分類Dev

ガベージコレクション/リンクリスト

分類Dev

ガベージコレクションのマークとJavaでのガベージコレクションの対象

分類Dev

Javaのガベージコレクションはどのように機能しますか?

分類Dev

Java-LinkedListの自動ガベージコレクションはどのように機能しますか?

分類Dev

ガベージコレクションとスレッド

分類Dev

スレッドガベージコレクション

分類Dev

解釈のJavaガベージコレクションのログの概要

分類Dev

Javaのガベージコレクション - 新しいしきい値

分類Dev

本番環境でのJava G1ガベージコレクション

Related 関連記事

  1. 1

    Javaメジャーおよびマイナーガベージコレクション

  2. 2

    リクエストおよびガベージコレクション中のWCF非同期

  3. 3

    .javaファイルを動的にロードおよびアンロードするJava、ガベージコレクション?

  4. 4

    Java、JIT、およびガベージコレクタの効率

  5. 5

    Javaでのガベージコレクションの理解、およびヒープスペースの誤用を防ぐ方法

  6. 6

    ネストされた強い参照を含むオブジェクトへの弱い参照、およびガベージコレクション

  7. 7

    Javaガベージコレクション

  8. 8

    Javaのガベージコレクション

  9. 9

    SML、Java、C、Pascalでのガベージコレクション

  10. 10

    Javaガベージコレクション

  11. 11

    Java-値渡し-ガベージコレクション

  12. 12

    ガベージコレクション-Java

  13. 13

    Java:ガベージコレクションの適格性

  14. 14

    java.nio.ByteBuffer-allocateDirectとガベージコレクション

  15. 15

    Goでの構造体のスタックとヒープの割り当て、およびガベージコレクションとの関係

  16. 16

    QueryDSL、Hibernate、およびSpring DataJPAでのレイジーコレクションのロードの回避

  17. 17

    Javaコレクションとガベージコレクター

  18. 18

    ガベージコレクターとコレクション

  19. 19

    Javaガベージコレクションログメッセージ

  20. 20

    Javaでのフラグメントのガベージコレクション

  21. 21

    ガベージコレクション/リンクリスト

  22. 22

    ガベージコレクションのマークとJavaでのガベージコレクションの対象

  23. 23

    Javaのガベージコレクションはどのように機能しますか?

  24. 24

    Java-LinkedListの自動ガベージコレクションはどのように機能しますか?

  25. 25

    ガベージコレクションとスレッド

  26. 26

    スレッドガベージコレクション

  27. 27

    解釈のJavaガベージコレクションのログの概要

  28. 28

    Javaのガベージコレクション - 新しいしきい値

  29. 29

    本番環境でのJava G1ガベージコレクション

ホットタグ

アーカイブ