データテーブルを初めて目
2つだけのセクションのテーブルデータ
プレート1は、コラム下の子をお勧めされていません
14のサブセクションで以下のセクション2
問い合わせへの一方の端には、調査結果は16を持っています
それは、プレート1+ 2+フォーラムのセクション2と彼の14個のサブセットが表示されている、であり、これは明らかに間違っています
プレートの設定オブジェクト
@OneToMany(カスケードにおけるCascadeType.ALL = {}、= FetchType.EAGERフェッチ) @JoinColumn(名= "セクションID")// 関連についてColumnMoDelの外部キー
私は、発生する緊急の負荷がそこにあるものを推測します
チャールズ文が必要です
休止状態: 選択 this_.id としてid1_17_1_、 ... から this_ t_section 左 外側に 参加 t_column columnmode2_ に this_.id = columnmode2_.sectionId 休止状態: 選択 columnmode0_.id として、id1_7_ ... から t_columnのcolumnmode0_ ここ columnmode0_.sectionid = ' 1 '
このポリシーは削除するように設定されています
@OneToMany(カスケードにおけるCascadeType.ALL = {} ) @JoinColumn(名 = "セクションID")// 関連についてColumnMoDelの外部キー
または遅延読み込みを使用して
@OneToMany(カスケードにおけるCascadeType.ALL = {}、= FETCH FetchType.LAZYに) @JoinColumn(名 = "セクションID")// 関連についてColumnMoDelの外部キー
あなたは、重複したデータセットのこの問題を解決することができます
しかし、これはマルチパーティのコレクションを取得していません
このように見える問題を解決していません
@Fetchを使用してこの問題を解決することができ、お問い合わせ後
@OneToMany(カスケード= {} CascadeType.ALLで) @JoinColumn(名 = "セクションID")// columnModel関連付けるための外部キー @Fetch(FetchMode.SUBSELECT)
発行したコンソールでクエリが2であります
休止状態: 選択 this_.id としてid1_17_0_、 ..... から t_section this_ 休止状態: 選択 columnmode0_.id としてid1_7_、 ... から t_columnのcolumnmode0_ columnmode0_.sectionid = ' 1 '
場合は、ノートと、それを変更
@OneToMany(カスケード = {CascadeTypeの。ALL }、FETCH = FetchType.EAGER) @JoinColumn(名= "セクションID")// 外部キーColumnMoDelを関連付けるため、ある @Fetch(FetchMode.SUBSELECT)を
声明では、再び変更されます
休止状態: 選択 this_.id としてid1_17_0_、 ... から t_section this_ 休止状態: 選択 columnmode0_.sectionIdのように、sectionI7_17_1_ ... から t_columnのcolumnmode0_ columnmode0_.sectionId では( 選択 this_.id から t_sectionのthis_ )
クエリの効率として、現在に対処する時間はありませんし、その後時間アナライザのテストを持っているが、文から解析まで、@速く怠惰な負荷と同様にロードされた急性および確かにないと(FetchMode.SUBSELECT)を取得します