Связь баз данных и вложенные классы
Не могу никак найти нормальный туториал как решить мою проблему есть 3 модели
@Entity
public class User {
@Id
private Long id;
private String name;
private String picture;
private List<Chat> chatList;
}
@Entity
public class Chat {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private Long count;
private List<Message> messageList;
}
public class Message {
private String name;
private String picture;
private String text;
private LocalDateTime dateTime;
}
Хочу их связать для сохранения в бд, так как List это не примитивы сам в SpringBoot новичок
Ответы (1 шт):
Автор решения: Alexandr
→ Ссылка
Как-то так:
@Entity
public class User {
@Id
private Long id;
private String name;
private String picture;
@ManyToMany
@JoinTable(
name = "user2chat",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "chat_id"))
private List<Chat> chats;
@OneToMany(mappedBy="user")
private List<Message> messages;
}
@Entity
public class Chat {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private Long count;
@ManyToMany
private List<User> users;
@OneToMany(mappedBy="chat")
private List<Message> messages;
}
@Entity
public class Message {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private String picture;
private String text;
private LocalDateTime dateTime;
@ManyToOne
@JoinColumn(name="chat_id", nullable=false)
private Chat chat;
@ManyToOne
@JoinColumn(name="user_id", nullable=false)
private User user;
}