Spring: создать объект с идентификатором из другой таблицы - PullRequest
0 голосов
/ 20 октября 2019

Я создал объекты User и Message, и теперь я хочу, чтобы идентификатор этого сообщения был связан с идентификатором пользователя. Как я могу сделать это с аннотациями или с чем-то еще? Таблица пользователей Таблица сообщений

Класс сообщений

@Entity
public class Message {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)

    private Long id;

    private String text;
    private String tag;

}

Класс пользователей

@Entity
@Table(name = "usr")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String username;
    private String password;
    private boolean active;

    @ElementCollection(targetClass = Role.class  , fetch = FetchType.LAZY)
    @CollectionTable(name = "user_role" , joinColumns = @JoinColumn(name = "user_id"))
    @Enumerated(EnumType.STRING)
    private Set<Role> roles;
}

1 Ответ

0 голосов
/ 20 октября 2019

Вы можете попробовать это:

Класс сообщения:

@Entity
public class Message {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)

    private Long id;

    private String text;
    private String tag;


    @ManyToOne
    @JoinColumn(name = "user_id")
    private User userId;

}

Класс пользователя:

@Entity
@Table(name = "usr")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String username;
    private String password;
    private boolean active;

    @ElementCollection(targetClass = Role.class  , fetch = FetchType.LAZY)
    @CollectionTable(name = "user_role" , joinColumns = @JoinColumn(name = "user_id"))
    @Enumerated(EnumType.STRING)
    private Set<Role> roles;


    @OneToMany(mappedBy = "user")
    @JsonBackReference
    private set<Message> messages;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...