【发布时间】:2014-01-12 01:00:18
【问题描述】:
我正在使用 JPA 2 + Hibernate 4.2.6 开发一个 Java 项目,但我遇到了一个奇怪的行为。
在我的模型中,我有两个相关的实体:Question 和 Answer
@Entity
public class Question {
// ...
@OneToMany(mappedBy = "question", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<Answer> answers;
// ...
}
@Entity
public class Answer {
// ...
@ManyToOne(optional = false)
@JoinColumn(name = "question_id", nullable = false)
private Question question;
// ...
}
这很完美:与某个Question 相关的所有Answers 都已正确加载。
但现在我需要将answers 的提示从Set 更改为List。我更改了类型并再次运行应用程序,现在我在answers 中得到了几个重复...
为什么有可能?我知道List 允许重复,但我的数据库中没有重复记录,为什么我会得到这些?
我在以前版本的 Hibernate 中读到了一些类似的错误,但我希望它们在上一个版本中得到解决......我错了吗?
注意我需要将Set 更改为List,因为我需要保留有关订单 的信息以获取答案,并可能更改此订单。
【问题讨论】:
标签: java hibernate jpa collections one-to-many