Spring 不获取OneToMany关系中的所有实体

Spring 不获取OneToMany关系中的所有实体,spring,spring-data,Spring,Spring Data,我使用了spring、spring数据和mysql。我有PersonEntity和EmailEntity。他们之间有许多关系(一个人有许多电子邮件) 个人实体 @Entity @Table(name = "person") public class PersonEntity { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "personid") private Long id; @On

我使用了spring、spring数据和mysql。我有
PersonEntity
EmailEntity
。他们之间有许多关系(一个人有许多电子邮件)

个人实体

@Entity
@Table(name = "person")
public class PersonEntity
{
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  @Column(name = "personid")
  private Long id;

  @OneToMany(fetch = FetchType.EAGER, cascade = javax.persistence.CascadeType.ALL, mappedBy = "id")
  private List<EmailEntity> emails;
}
我使用spring数据获取了Person数据

PersonEntity personEntity = personDAO.findOne(id);
我在数据库中为一个人发送了不止一封电子邮件。 当我调试代码时,
PersonEntity
只包含一个
EmailEntity
,尽管列表中有两个以上的EmailEntity

哪里出了问题? 如果有错误,请更正?

应该链接到持有关系反面的属性。在您的情况下,这是
个人属性
,而不是
id

@OneToMany(fetch=FetchType.EAGER, cascade=javax.persistence.CascadeType.ALL, mappedBy="personEntity")
private List<EmailEntity> emails;
@OneToMany(fetch=FetchType.EAGER,cascade=javax.persistence.CascadeType.ALL,mappedBy=“personEntity”)
私人名单电子邮件;

在您的配置中可能发生的情况是,通过将电子邮件的
id
id
或您的个人匹配来获取电子邮件。

mappedBy
应该链接到持有关系反面的属性。在您的情况下,这可能是
个人属性
,而不是
id
。解决了这个小错误解决了您的问题吗?如果是这样的话,我会把它作为一个实际的答案发布。
@OneToMany(fetch=FetchType.EAGER, cascade=javax.persistence.CascadeType.ALL, mappedBy="personEntity")
private List<EmailEntity> emails;