需要有关 JPA 实体映射的帮助
Need help regarding JPA entity mapping
我对 ORM 还很陌生。我无法决定应该如何准确映射以下实体。
- 讨论帖
- Post
- 用户
- 匿名用户
DiscussionThread 类似于我们在在线公告栏中看到的内容。它将包含 Post 的列表,该列表将由 User 发布。但是,我不希望 User 在 DiscussionThread 中发帖时泄露 his/her 身份。
为了实现这一点,我创建了一个由实体 AnonymousUser 表示的代理用户名列表。因此,每当 User 决定在 DiscussionThread 中创建 Post 时,他会作为 AnonymousUser 发帖。由同一 User 在 DiscussionThread 中创建的任何进一步 Post 将链接到相同的 AnonymousUser。User 在不同的 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 中的数据库符号。
我对 ORM 还很陌生。我无法决定应该如何准确映射以下实体。
- 讨论帖
- Post
- 用户
- 匿名用户
DiscussionThread 类似于我们在在线公告栏中看到的内容。它将包含 Post 的列表,该列表将由 User 发布。但是,我不希望 User 在 DiscussionThread 中发帖时泄露 his/her 身份。 为了实现这一点,我创建了一个由实体 AnonymousUser 表示的代理用户名列表。因此,每当 User 决定在 DiscussionThread 中创建 Post 时,他会作为 AnonymousUser 发帖。由同一 User 在 DiscussionThread 中创建的任何进一步 Post 将链接到相同的 AnonymousUser。User 在不同的 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 中的数据库符号。