Правильная ли связь JPA

Мне нужно связать базы данных

@Entity
@Table(name = "users")
public class User {
 
    @Id
    private Long id;
 
    private String name;
    private String picture;
 
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private Set<Chat> chatList;
 
    @ManyToMany
    @JoinTable(
            joinColumns = @JoinColumn(name = "user_id"),
            inverseJoinColumns = @JoinColumn(name = "chat_id"))
    private List<Chat> chats;
 
    @OneToMany(mappedBy="user")
    private List<Message> messages;
@Entity
@Table
public class Chat {
 
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
 
    private Long count;
 
    @ManyToMany
    private Set<User> users;
 
    @OneToMany(mappedBy="chat")
    private List<Message> messages;

Путем проб и ошибок и поиска в инете я пришел в такому методу

 @PutMapping("/user/{id_us}/chat/{id_chat}")
    public User putCharOfUser(@PathVariable Long id_us, @PathVariable Long id_chat)
    {
        User user = foundElement(id_us);
        Chat chat = foundTwoElement(id_chat);
 
        user.getChatList().add(chat);
     //   chat.getUsers().add(user);
        chat.setCount(chat.getCount() + 1);
 
        chatRepo.save(chat);
        return userRepo.save(user);
    }

По сути он делает то что я хотел связывает 2 существующие записи в базах, но есть сомнения, может это делается как-то по другому?

вывод такой

//user
[{"id":1,"name":null,"picture":null,"chatList":[{"id":16,"count":1,"users":[],"messages":[]}]}]
//chat
[{"id":16,"count":1,"users":[],"messages":[]}

Ответы (1 шт):

Автор решения: Artur Vartanyan
@Entity
@Table(name = "users")
public class User {
 
    @Id
    private Long id;
 
    private String name;
    private String picture;
 
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private Set<Chat> chatList;
 
    @OneToMany(mappedBy="user")
    private List<Message> messages;
@Entity
@Table
public class Chat {
 
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
 
    private Long count;
 
    @OneToMany(mappedBy="chat")
    private List<Message> messages;
→ Ссылка