需要有关 JPA 实体映射的帮助

Need help regarding JPA entity mapping

我对 ORM 还很陌生。我无法决定应该如何准确映射以下实体。

  1. 讨论帖
  2. Post
  3. 用户
  4. 匿名用户

DiscussionThread 类似于我们在在线公告栏中看到的内容。它将包含 Post 的列表,该列表将由 User 发布。但是,我不希望 UserDiscussionThread 中发帖时泄露 his/her 身份。 为了实现这一点,我创建了一个由实体 AnonymousUser 表示的代理用户名列表。因此,每当 User 决定在 DiscussionThread 中创建 Post 时,他会作为 AnonymousUser 发帖。由同一 UserDiscussionThread 中创建的任何进一步 Post 将链接到相同的 AnonymousUserUser 在不同的 DiscussionThreads[=] 中会有不同的 AnonymousUser 名称54=]。 AnonymousUser 的一个实例可能被两个不同的用户在两个不同的线程上使用。

简单来说,每个 DiscussionThread 中会有一个 AnonymousUser 对应一个 User .

我已经创建了以下 POJO 实体,但我不知道应该如何将它们相互映射。

public class AnonymousUser {

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

    private String name;
    private String displayPicture;

    //Not sure how to make relationships here
    private Set<DiscussionThread> discussionThreads;

    private Set<User> users;
}

public class DiscussionThread {

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

    private String title;

    private String description;
}

public class User {

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

    private String email;

    private String username;
}

任何帮助将不胜感激。

谢谢!

嗯,你基本上描述了:

不知道它是否正确,但这是您可以绘制和思考此类问题的一种方式。这是 Chen 在 Visio 中的数据库符号。