可嵌入和元素集合嵌套
我有一个相当典型的场景,其中有一个主要@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定义为实体并解决问题,但在我的情况下,出于多种原因,我需要强制要求,如果没有他的父母,非常嵌套的东西就没有意义。
为什么 JPA 2.0 必须阻止我这样做?