? Реляционные дочерние атрибуты в стандартном поведении не доставляются при запросе родителя. Затем клиент должен перейти по ссылке.

я есть 3 таблицы в дБ
повышение квалификации
- training_id (шт.)

Профиль пользователя
- profile_id (шт.)

-training_profile (составная таблица)
- training_id
- profile_id

У меня уже есть запись в таблице user_profile, имеющая profile_id = 44, и я хочу создать новую запись для таблицы тренировок, а также связать эту новую тренировку с уже существующей записью user_profile, которая имеет идентификатор 44, но после того, как данные записей сохранены в таблице тренировок, но не вставлено в таблицу поиска user_training.
Мои классы объектов - Учебный класс

@Entity
@Table(name = "training", schema = "public")
public class Training implements java.io.Serializable {

    @Id @GeneratedValue
    @Column(name = "training_id", unique = true, nullable = false)
    private Long trainingId;


    @ManyToMany(fetch = FetchType.LAZY, mappedBy = "trainings")
    private Set<UserProfile> userProfiles = new HashSet<UserProfile>(0);

    @Column(name = "training_subject", length = 200)
    private String trainingSubject;

    public Training() {
    }

    public Long getTrainingId() {
        return this.trainingId;
    }

    public void setTrainingId(Long trainingId) {
        this.trainingId = trainingId;
    }


    public String getTrainingSubject() {
        return this.trainingSubject;
    }

    public void setTrainingSubject(String trainingSubject) {
        this.trainingSubject = trainingSubject;
    }


    public Set<UserProfile> getUserProfiles() {
        return this.userProfiles;
    }

    public void setUserProfiles(Set<UserProfile> userProfiles) {
        this.userProfiles = userProfiles;
    }
}

Профиль пользователя

@Entity @Table (name = "user_profile", schema = "public")
Открытый класс UserProfile реализует java.io.Serializable {

@Id @GeneratedValue
@Column(name = "profile_id", unique = true, nullable = false)
private Long profileId;

@Column(name = "profile_description")
private String profileDescription;

@ManyToMany(fetch = FetchType.EAGER, cascade = { CascadeType.ALL })
@JoinTable(name = "user_training", schema = "public", joinColumns = {
        @JoinColumn(name = "profile_id", nullable = false, updatable = false) }, inverseJoinColumns = {
                @JoinColumn(name = "training_id", nullable = false, updatable = false) })
private Set<Training> trainings = new HashSet<Training>(0);

public UserProfile() {
}


public String getProfileDescription() {
    return this.profileDescription;
}

public void setProfileDescription(String profileDescription) {
    this.profileDescription = profileDescription;
}


public Set<Training> getTrainings() {
    return this.trainings;
}

public void setTrainings(Set<Training> trainings) {
    this.trainings = trainings;
}

}

Мой JSON пост через почтальона

И ответ получаю

Ответ показывает, что новая запись об обучении вставлена ​​в таблицу с значением training_id 67. Не обнаружено связи для этого нового сохраненного обучения

снова он создал новую запись для обучения и не ассоциируется с существующим профилем пользователя. Я публикую curl -i -X ​​POST -H "Content-Type: application / json" -d "{\" trainingSubject \ ": \" Oracle \ " , \ "userProfiles \": [\ "/ userProfiles / 44 \"]} "HTTP: // локальный: 8080 / API / тренинги

Ответы на вопрос(1)

Ваш ответ на вопрос