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

时间:2019-01-07 11:37:38

标签: spring jpa orm mapping entity

我是ORM的新手。我在确定应该如何精确映射以下实体时遇到麻烦。

  1. DiscussionThread
  2. 发布
  3. 用户
  4. AnonymousUser

DiscussionThread 类似于我们在在线公告板上看到的内容。它包含一个发布列表,该列表将由用户发布。但是,我不希望用户在发布 DiscussionThread 时透露其身份。 为了实现这一点,我创建了一个由实体 AnonymousUser 表示的代理用户名列表。因此,每当用户决定在 DiscussionThread 中发布帖子时,他都会以 AnonymousUser 的身份发布。由同一 User 在该 DiscussionThread 中创建的任何其他帖子,都将链接到同一 AnonymousUser > User 在不同的 DiscussionThreads 中将具有不同的 AnonymousUser 名称。 AnonymousUser 的实例可由两个不同线程上的两个不同用户使用。

用简单的话来说,每个 DiscussionThread 中将有一个 User AnonymousUser

我已经创建了以下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;
}

任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

嗯,您基本上描述了:

enter image description here

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