Как описать сущности для чата JPA
Есть задача реализовать чат на бэке.
Спроектировал вот такую базу
Не знаю, как правильно описать сущности.
По коду следующее:
User имеет лишь Set с Chat, который не знаю как описать для хибера.
Chat выглядит вот так
@Entity
@Table(name = "chats")
public class Chat {
@Id
@GeneratedValue
@Column(name = "id", nullable = false)
private Long id;
//TODO замапить чаты у юзера и тут
private UserModel UserOne;
private UserModel UserTwo;
@OneToMany(
fetch = FetchType.LAZY,
cascade = CascadeType.ALL,
mappedBy = "chat"
)
private Set<ChatMessage> chatMessageSet;
}
ChatMessage
@Entity
@Table(name = "chat_messages")
public class ChatMessage {
@Id
@GeneratedValue
@Column(name = "id", nullable = false)
private Long id;
@ManyToOne(
fetch = FetchType.LAZY
)
@JoinColumn(name = "user_id")
private UserModel user;
@ManyToOne(
fetch = FetchType.LAZY
)
@JoinColumn(name = "chat_id")
private Chat chat;
@Column(name = "text_msg", nullable = false)
private String textMsg;
@Column(name = "created_time", nullable = false)
private LocalDate createdTime;
}