JPA 仕様では、一般に、ほとんどのアプリケーションではデフォルトでシングルトン リレーションが熱心である必要があるのに対し、複数値リレーションはデフォルトでレイジーである必要があると想定しています。少なくとも私自身の経験では、これは一般的に望ましいアーキテクチャです。シングルトン関係は、外部キーでシングルトン結合を作成するために JPA レイヤーと DB レイヤーで大幅な追加パフォーマンスを必要としないため、これは理にかなっています。ただし、それとは対照的に、多値属性は N + 1 問題または大きなデカルト結果セットのいずれかを作成し、コレクション内の要素の数と結合フェッチが使用されるときに結合の数が増加するにつれて、指数関数的に膨張します (ただし、Hibernate は特に結合フェッチを処理できません)。 2 つ以上の熱心な関連付け)。
そうは言っても、あなたの提案に関しては、特定の(正直なところ、まったく珍しいことではない)ケースに対処する必要があります。今は 1 つのケースしかありませんが、そのようなケースは何百もあります。したがって、仕様を記述するには、一般化と粒度の間に線を引く必要があります。
もし私があなたの立場で、これが絶対に便利な機能で JPA 仕様に追加されると思うなら、私はそれを JCP に提出します。一方、特定の実装でこれ (、あれ、あれ...) に対処すると、いわゆるベンダーロックインに陥ります。したがって、@ManyToOne @OneToOne 属性に遅延フェッチを設定し、ベンダーフリーを維持するために余分な時間を費やします。したがって、Hibernate (または任意の実装) よりも 15 倍以上高速な新しい JPA 実装が登場した場合、仕様に固執することによって使用)、プロジェクトを新しい JPA 実装に移行するのにほとんどまたはまったく労力はかかりません。