使用ManyToMany关系实现类似的功能

时间:2019-03-09 14:22:39

标签: hibernate spring-boot spring-data-jpa

我有这些数据库表

USER
id int
name varchar

ANSWER
id int
message varchar

user_answer_likes
user FK -> USER.id
answer FK -> ANSWER.id

那里有user_answer_likes表,因此用户只能喜欢一次答案。我在如何在Spring项目中实现此方法上有一个问题。

在答案实体中,我希望获得一个答案的喜欢总数。我将如何实现这一目标,例如在Answer Entity中使用int属性?

1 个答案:

答案 0 :(得分:1)

1)在您的情况下,您具有以下关系:

  1. 一个人--->许多Like_Answer
  2. 一个喜欢的答案->一个人
  3. 一个答案--->许多Like_Answer
  4. 一个类似的答案->一个答案

因此,您可以在表之间使用@ManytoOne关系。 并使用两个外键PersonID和AnswerID构造复合键Like_Answer(PersonID,AnswerID)。

2)对于另一个问题:“答案”的喜欢总数应不属于“答案”的属性。