I am trying to persist a new JobAdvertise
object with a list of new JobAdTasks
objects. An advertise contains tasks related to it, both persisted successfully at the same time. However, the foreign key for each JobAdTask
is empty. How can I solve this problem, persisting two objects at the same in a two-way mapping relationship?
JobAdvertise
class:
@JsonManagedReference
@OneToMany(cascade = CascadeType.ALL,mappedBy = "jobAdvertise")
private List<JobAdTask> taskList = new ArrayList<>();
public void addTask(JobAdTask adTask) {
if (adTask != null) {
if (taskList == null) { taskList = new ArrayList<>(); }
taskList.add(adTask);
}
}
JobAdTask
class:
@JsonBackReference
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.DETACH, CascadeType.MERGE, CascadeType.REFRESH}, fetch = FetchType.LAZY)
@JoinColumn(name = "job_add_id")
private JobAdvertise jobAdvertise;
JobAdvertiseService
service class:
JobAdvertise jobAdvertise = new JobAdvertise();
for (String task : jobAdCreation.getTaskList()) {
JobAdTask jobAdTask = new JobAdTask();
jobAdTask.setTask(task);
jobAdTaskRepo.save(jobAdTask);
//Relationship JobAdvertise and JobAdTask
jobAdvertise.addTask(jobAdTask);
}
jobAdvertiseRepo.save(jobAdvertise);