【发布时间】:2014-03-02 10:24:16
【问题描述】:
我有一个相当典型的场景,其中有一个主要的@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 必须阻止我这样做?
【问题讨论】:
标签: java hibernate jpa embeddable