public class Certification implements Serializable {
private static final long serialVersionUID = 6045812180225694344L;
@Id
@GeneratedValue(generator = "uuid")
@Column(name = "certification_id", updatable = false, nullable = false)
private String id;
@OneToMany(cascade = CascadeType.ALL, mappedBy="certification", fetch = FetchType.EAGER, orphanRemoval = true)
private List<CertificationPrerequisite> prerequisites;
}
public class CertificationPrerequisite implements Serializable {
private static final long serialVersionUID = 6045812180225694344L;
@Id
@GeneratedValue(generator = "uuid")
@Column(name = "id", updatable = false)
private String id;
@ManyToOne(optional = false, targetEntity = Certification.class, fetch = FetchType.EAGER)
@JoinColumn(name="certification_id", referencedColumnName = "certification_id")
private Certification certification;
@Column(name = "prerequisite_certification_id")
private String prerequisiteCertificationId;
}
Когда я сохраняю этот объект сертификации, включая CertificationPrerequisite, объект сертификации внутри Id становится нулевым, что, как я подозреваю, не позволяет сохранить объект.Есть ли способ сделать это лучше?
public interface CertificationRepository extends JpaRepository<Certification, String>, JpaSpecificationExecutor<Certification> {
}
Certification certification = new Certification();
CertificationPrerequisite certificationPrerequisite = new
CertificationPrerequisite();
certificationPrerequisite.setCertification(certification);
certification.setCertificationPrerequisite(certificationPrerequisite);
CertificationRepository.save(certification);