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

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

@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;
}
2
Семен Немытов 20 Окт 2019 в 17:04

1 ответ

Лучший ответ

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

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

@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;
}
0
AmirBll 20 Окт 2019 в 16:12