我有一个相当典型的场景,其中有一个主要的 @Entity 并且他里面的所有东西都是可嵌入的(所以里面的所有东西都没有父母没有意义)。现在 JPA 2.0 阻止我将 @ElementCollection 嵌套在另一个 @ElementCollection 中定义的 @Embeddable 中:
JSR-317 2.6 可嵌入类和基本类型的集合 包含在元素集合中的可嵌入类(包括另一个可嵌入类中的可嵌入类)不得包含元素集合,也不得包含与实体以外的实体的关系多对一或一对一关系
现在的问题是:为什么会这样?一个简单的例子:
@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 必须阻止我这样做?