【问题标题】:Need help regarding JPA entity mapping需要有关 JPA 实体映射的帮助
【发布时间】:2019-06-02 01:49:41
【问题描述】:

我对 ORM 还很陌生。我在决定如何准确映射以下实体时遇到了问题。

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

DiscussionThread 类似于我们在网上公告板上看到的内容。它将包含一个 Post 列表,该列表将由 User 发布。但是,我不希望 用户DiscussionThread 中发帖时透露他/她的身份。 为了实现这一点,我创建了一个由实体 AnonymousUser 表示的代理用户名列表。因此,每当 用户 决定在 DiscussionThread 中发布 帖子 时,他将作为 AnonymousUser 发布。同一 User 在该 DiscussionThread 中发表的任何进一步 Post 都将链接到同一 AnonymousUserUser 在不同的 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


    【解决方案1】:

    嗯,你基本上描述了:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 2021-11-28
      • 2019-02-12
      相关资源
      最近更新 更多