Как правильно прописать отношения в сущности?
Есть класс "UserTrainee"- он не является сущностью "Стажер". У стажера сущность User. UserTrainee как промежуточный класс для запросов. У него есть поле user и поле traineeId(стажер). Таблица user_trainee выглядит так:
id (bigint, PK), userId (bigint, FK, not null), traineeId (bigint, FK, not null)
Пример таблицы, которая должна будет получиться (вместо имен, их id соответственно):

Как это реализовать? Какие отношения прописывать в коде? У меня что-то вроде этого получилось, не уверен, что делаю правильно: В классе User:
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private Set<UserTrainee> userSet;
@OneToMany(mappedBy = "traineeId", cascade = CascadeType.ALL, orphanRemoval = true)
private Set<UserTrainee> userTraineeSet;
В классе UserTrainee:
@ManyToOne
@JoinColumn(name = "user_id", nullable = false, unique = true)
private User user;
@ManyToOne
@JoinColumn(name = "trainee_id", nullable = false, unique = true)
private User traineeId;