Spring 不获取OneToMany关系中的所有实体
我使用了spring、spring数据和mysql。我有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
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;