Как правильно прописать отношения в сущности?

Есть класс "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;

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