13

メインの @Entity があり、その中のすべてが埋め込み可能であるというかなり典型的なシナリオがあります (したがって、内部のすべては親なしでは意味がありません)。現在、JPA 2.0 は、別の @ElementCollection で定義された @Embeddable 内に @ElementCollection をネストすることをブロックしています。

JSR-317 2.6 埋め込み可能なクラスと基本型のコレクション 要素のコレクションに含まれる埋め込み可能なクラス (別の埋め込み可能なクラス内の埋め込み可能なクラスを含む) は、要素のコレクションを含んではならず、エンティティ以外のエンティティとの関係を含んではなりません。多対 1 または 1 対 1 の関係

ここで問題は次のとおりです。これはなぜですか。簡単な例:

@Entity
public class Tournament {
    @Id
    Long id;

    @ElementCollection
    @CollectionTable
    private List<Edition>;
}

@Embeddable
public class Edition {

    @ElementCollection
    @CollectionTable
    private List<Round>
}

@Embeddable
public class Round {

    blabla;
}

これを持っている問題は何ですか?これは単なる例です。Round と Edition を Entity として定義して問題を解決できますが、私の場合、いくつかの理由から、非常にネストされたものは親なしでは意味をなさないことを強制する必要があります。

なぜJPA 2.0がこれを止めなければならないのですか?

4

1 に答える 1