No se pueden guardar datos en la tabla compuesta a través de Spring Data rest json post

Tengo 3 tablas en db
formación
- training_id (paquete)

perfil del usuario
- profile_id (pk)

-training_profile (tabla compuesta)
- training_id
- Perfil Id

Ya he registrado en la tabla user_profile con profile_id = 44 y quiero crear un nuevo registro para la tabla de entrenamiento, y también asociar este nuevo entrenamiento con el registro de user_profile ya existente que tiene id 44, pero después de publicar los datos se guarda en la tabla de entrenamiento pero es no insertado en la tabla de búsqueda user_training.
Mis clases de objetos son - Clase de entrenamiento

@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;
    }
}

Perfil del usuario

@Entity @Table (name = "user_profile", schema = "public")
UserProfile de clase pública implementa 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;
}

}

Mi publicación json vía cartero

Y la respuesta que obtengo

La respuesta muestra que el nuevo registro de entrenamiento insertado en la tabla que tiene training_id como 67 No se encontró asociación para este nuevo entrenamiento guardado

nuevamente creó un nuevo registro para entrenamiento y no se asocia con el perfil de usuario existente, publico curl -i -X POST -H "Content-Type: application / json" -d "{\" trainingSubject \ ": \" Oracle \ " , \ "userProfiles \": [\ "/ userProfiles / 44 \"]} "http: // localhost: 8080 / api / entrenamientos

Respuestas a la pregunta(1)

Su respuesta a la pregunta