小编Sco*_*ott的帖子

实体管理器返回@OneToMany相关实体的重复副本

我正在开发一个应用程序来帮助我的办公室跟踪和管理评论.在应用程序中,我使用JPA 2.0和Hibernate 3.6.3作为我的底层提供程序.我也使用spring将持久化上下文注入到我的DAO中.我建立了域名,以便有一个评论,一个参与者和一个角色实体.

我遇到的问题是,如果参与者有多个角色,当我从实体经理获得评论时,参与者列表中存在相同参与者的重复副本(即相同的ID).我还发现重复数量与角色数量直接相关(即如果参与者有3个角色,那么参与者在评论的参与者列表中出现3次)

我之前使用过直接的Hibernate,但这是我第一次使用JPA,所以我确定我配置错了.我只是不知道它是什么.

这是代码:

评论:

@Entity
public class Review extends BaseModel{

@ManyToOne(cascade=CascadeType.ALL, fetch=FetchType.EAGER, optional=false)
private Item item;

@Column(name="ISNEW", nullable=false)
private boolean isNew;

@Enumerated(EnumType.STRING)
@Column(name="STATUS", nullable=false)
private ReviewStatus status;

@Enumerated(EnumType.STRING)
@Column(name="PHASE", nullable=false)
private Phase phase;

@Enumerated(EnumType.STRING)
@Column(name="REVIEW_TYPE", nullable=false)
private ReviewType reviewType;

@OneToMany( cascade=CascadeType.ALL, fetch=FetchType.EAGER)
private List<Participant> participants;

@OneToMany(cascade=CascadeType.ALL)
private List<Defect> defects;

@Column(name="START_DATE", nullable=false)
private Date startDate;

@Column(name="MEETING_DATE", nullable=false)
private Date meetingDate;

@Column(name="FINISH_DATE")
private Date finishDate;

@Column(name="DURATION", nullable=false)
private Double duration;

public Item getItem()
{
    return item;
}
public void …
Run Code Online (Sandbox Code Playgroud)

spring hibernate jpa-2.0

9
推荐指数
1
解决办法
6282
查看次数

标签 统计

hibernate ×1

jpa-2.0 ×1

spring ×1