我刚冬眠, 根据下面的文章,在大多数情况下,映射关系的最佳方法似乎是单向的,除了特殊情况(如Q和A应用程序)之外,子实体的数量有限。
链接- https://www.callicoder.com/hibernate-spring-boot-jpa-one-to-many-mapping-example/
这正确吗?我想清除我的记忆并开始我的关系映射。
答案 0 :(得分:2)
对于问答应用程序,我认为我们将需要双向映射。 对于给定的问题,您需要知道已经给出的答案。 而要获得答案,您需要知道问题是什么。
@Entity
Class Answer {
@Id
@Column("answer_id")
private Long answerId;
@JoinColumn("question_id")
@ManyToOne
private Question question;
}
@Entity
class Question {
@Id
@Column("question_id")
private Long id;
@OneToMany(mappedBy = "question")
private List<Answer> answers;
}
因此,这里的拥有者将是答案 表示答案表将具有question_id 问题表不会存储answer_id
答案 1 :(得分:1)
单向或双向,这完全取决于您的要求。 例如 :- A和B是两个实体: 1> A与B具有单向关系,这是您没有 加载B时需要/想要加载A。 2>如果您要在加载B时加载A,则需要一一双向 方向映射。