当前位置: 首页 > 知识库问答 >
问题:

两个实体之间的多个不同类型关联--SpringBoot、PostgreSQL

齐英耀
2023-03-14

假设我有2个实体类,User和post。

波纹管示例

@Entity
public class User{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @OneToMany(mappedBy = "user")
    private Set<Post> posts;

    @ManyToMany
    @JoinTable(
            joinColumns = @JoinColumn(name = "user_id"),
            inverseJoinColumns = @JoinColumn(name = "post_id"))
    private Set<Post> followedPosts;
}
@Entity
public class Post{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Post id;

    @ManyToOne
    @JoinColumn(name = "id", nullable = false)
    private User user;

    @ManyToMany(mappedBy = "followedPosts")
    private Set<User> users;
}

共有1个答案

景稳
2023-03-14

是的,您可以在相同的2个表之间有许多关联。

一个表甚至可以有多个返回到自身的关联,例如,Person表可以有一个Father_ID列和一个Mother_ID列,这两个外键(一对多关联)都返回到Person表本身。

 类似资料:
  • 我正在开发一个Grails应用程序。我创建了3个实体客户,产品和订单。客户可以有许多订单,但每个订单只能包含单一产品。因此,单个订单可以关联到一个客户和一个产品。以下是我的域名: 顾客: 订单: 产品: 我使用generate all生成了控制器、视图,运行应用程序时出现以下错误: 我也不能创造一个客户。域映射有什么问题吗? 我的数据源配置如下:

  • 如何为这种多对多关系分配默认值?制作两个关联表->一个用于收件箱-关系,另一个用于发件箱-关系会更好吗?我该如何做到这一点?这个问题的其他解决方案? 任何帮助都非常感谢--非常感谢!

  • 我的Spring Boot应用程序中有两个实体: 使用者JAVA 和 Role.java 我的MySql数据库 我已经排除了这个问题的getter和setter方法。 我想实现两个实体之间的多对多关系。每个用户都应该能够为自己分配多个角色 我已经在我的数据库中为这两个表创建了一个映射表。它有几排 用户id 我还创建了一个新的实体UserRole。java,如下所示: 现在我的问题是:这种构造正确吗

  • 问题内容: 我的Spring-Boot应用程序中有两个实体: User.java 和 角色.java 对于我的MySql数据库 我已经排除了此问题的getter和setter方法。 我想实现两个实体之间 的多对多关系 。每个用户都应该能够为其分配多个角色 我已经为数据库中的两个表创建了一个映射表。它有行 用户身份 role_id。 我还创建了一个新的Entity UserRole.java ,如下

  • 我很难找到数据库中多对多关系的最佳设计。我的项目允许用户创建我们所说的日志警报。日志警报将检查给定的日志是否满足某些标准,如果满足,它将向AWS SNS主题发送消息。我想做的是将日志警报与AWS SNS主题联系起来。我还想将哪个用户分配日志警报与AWS SNS主题联系起来。

  • 我很难模拟这种情况。我在设计一个基于位置的优惠券系统。用户可以定义区域和优惠,然后将每个优惠关联到多个区域。此外,每个区域可以有多个优惠。所以zone和offer有很多对很多的关系。用户实体拥有这两个实体。只有在同一用户拥有区域和优惠的情况下,才能将它们关联起来。图表会很有帮助。多谢了。