R42日記スマートフォン用の表示で見るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。読者です読者をやめる読者になる読者になるR42日記この日記は私的なものであり、所属会社の見解ではありません。油断をすると牙を向いてきますよ、というお話。子エンティティが遅延ロードされてしまうという問題が発生していたのです。エンティティの定義は次のような感じ。...(以下略)}で、コレを使ったコードがコチラ。ここでParent.childrenの遅延ロードが実行されてしまう!!}さて、文章にすると簡単なんですが、ここまで来るのに3時間かかりました。何がまずかったのか?HashSetって、名前の通りハッシュ値をベースに一意性を保証していますよね。御存知の通りだと思いますが。}...んん〜??HashCodeBuilderは、引数で指定したインスタンスの全フィールドを使ってハッシュ値を計算します。いうことは、ハッシュコードを計算している時点で遅延ロードしに行っているのか.../(^o^)\ナンテコッタイ...ここまで来るのに5時間かかりました。いやこれでも結構頑張ったんですよ僕。遅延ロードする子エンティティを持つエンティティはhashCodeを実装してはいけません。Setに詰めたり、HashMapのキーとして使うならば。末端まで届かない可能性大です。今回はこんなふうにしときました。オブジェクトIDだけをみて判定する方法です。コレで概ねうまく行っているのでよしとします。