Нужна помощь в сопоставлении сущностей JPA - PullRequest
0 голосов
/ 07 января 2019

Я довольно новичок в ORM. У меня возникают проблемы с решением, как именно я должен отобразить следующие объекты.

  1. DiscussionThread
  2. Сообщение * * 1006
  3. Пользователь
  4. AnonymousUser

DiscussionThread будет чем-то похожим на те, которые мы видим на электронных досках объявлений в Интернете. Он будет содержать список Post , который будет опубликован User . Однако я не хочу, чтобы Пользователь раскрыл свою личность при публикации в DiscussionThread . Чтобы добиться этого, я создал список имен прокси-пользователей, обозначаемых сущностью AnonymousUser . Таким образом, всякий раз, когда пользователь решает сделать сообщение в дискуссионной теме , он будет публиковать сообщение как AnonymousUser . Любое дальнейшее сообщение , сделанное тем же пользователем , в котором DiscussionThread будет связано с тем же AnonymousUser .The User будет иметь разные AnonymousUser имена в разных Обсуждение темы . Экземпляр AnonymousUser может использоваться двумя разными пользователями в двух разных потоках.

Проще говоря, будет один AnonymousUser для одного пользователя в каждом DiscussionThread .

Я создал следующие объекты 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 голосов
/ 08 января 2019

Ну, вы в основном описали:

enter image description here

Не знаю, правильно это или нет, но это один из способов, с помощью которого вы можете составить схему и подумать о таких проблемах. Это запись Чена в Visio.

...