以下(抽象)代码给出了StackOverflow错误,我假设由于Team和Member之间的递归引用(Team包含Member,其中包含Team等)。
@Entity public class Team {
@Id public String id;
public List<Member> members;
public Team() {
this.id = UUID.randomUUID().toString();
}
}
public class Member {
@Container Team team; //removing this line prevents error, but then how to reference this member's team?
public Member() {}
}
如何正确设置此关系的注释,以便团队引用其成员,并且每个成员都有对其团队的引用?
答案 0 :(得分:0)
@Container使嵌入的实体填充引用的实体。如果您执行上述操作,当您加载Team
或Member
之一时,它会将另一个作为嵌入实体加载到其中,然后再将其加载到其中 - &gt;显然,这是一个无限递归的团队和成员一直到溢出。
假设Member
只能在一个团队中。也许你最好将Team
设置为@Parent
(团队包含成员,成员是团队的一部分)。请记住,这意味着您可以持续每秒写入1次限制,尽管您可以在短时间内突然爆发。