java - Spring 关注关注者

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

我正在尝试在 Spring Boot 应用程序中开发关注者功能。我搜索示例,看到了这个,一开始就很有意义:

https://github.com/SoichiSumi/Twitter-Clone/blob/master/src/main/java/yoyoyousei/twitter/clone/domain/model/User.java

我的用户有一个多对多的关注关系,就像这样......

@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "relation",
            joinColumns = @JoinColumn(name = "user_id"),
            inverseJoinColumns = @JoinColumn(name = "following_id"))
private List<User> following;

我开发了 Controller 、JSP 和表格,并且可以很好地查看您正在关注哪个用户,但当我尝试开发关注者时,问题就出现了。

User_id  Following_id
1       2
1       3
1       4
1       6
2       4
2       6
  • User_ID=1 是以下用户:2、3、4&6
  • User_ID=4 拥有关注者:1 和 2

我如何在该表中查询 user_id=4 的关注者?

我认为我应该使用 FollowerService 和 DAO,但我意识到我没有可以使用它的 bean。 我认为我可以做到这一点的唯一方法是获取所有表并开始搜索某个 follow_id 的所有出现,以查看 user_id 是关注者。

我找不到简单的方法来做到这一点。你认为我应该创建一个 bean 吗?如何?谢谢

最佳答案

创建相反的关系,如下所示:

@ManyToMany(mappedBy = "following")
private List<User> followers;

您可以通过 followers 字段获取 id = 4 用户的关注者。

关于java - Spring 关注关注者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44331694/

相关文章:

java - 小程序在安全阶段在 IE 中挂起

java - Spring Aspectj @Before 所有休息方法

java - 在 Hibernate 中添加 Employee 时出现 NullPointerException

java - Spring-Data-Jpa 在持久化后清除链接实体的所有参数

mysql - 使用 MySQL 的多个/分布式 hibernate SessionFactory 实例的问题

java - 在 Spring 中使用 HikariCP 连接到 Oracle DB 时发送应用程序名称

java - 如何在未知 XML 标签上失败?

java - 使用泛型实现对象转换器设计模式

java - 二进制数据的未知编码/序列化

Java 循环故障排除