【发布时间】:2019-06-02 01:49:41
【问题描述】:
我对 ORM 还很陌生。我在决定如何准确映射以下实体时遇到了问题。
- 讨论帖
- 发布
- 用户
- 匿名用户
DiscussionThread 类似于我们在网上公告板上看到的内容。它将包含一个 Post 列表,该列表将由 User 发布。但是,我不希望 用户 在 DiscussionThread 中发帖时透露他/她的身份。 为了实现这一点,我创建了一个由实体 AnonymousUser 表示的代理用户名列表。因此,每当 用户 决定在 DiscussionThread 中发布 帖子 时,他将作为 AnonymousUser 发布。同一 User 在该 DiscussionThread 中发表的任何进一步 Post 都将链接到同一 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;
}
任何帮助将不胜感激。
谢谢!
【问题讨论】:
标签: spring jpa orm mapping entity