如何同时存在两个对象?
我试图坚持一个新的JobAdvertise
对象,其中有新的JobAdtasks
对象。广告包含与之相关的任务,两者都在同一时间持续存在。但是,每个JobAdTask
的外键是空的。如何解决这个问题,在双向映射关系中持续两个对象?
JobAdvertise
类:
@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
类:
@JsonBackReference
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.DETACH, CascadeType.MERGE, CascadeType.REFRESH}, fetch = FetchType.LAZY)
@JoinColumn(name = "job_add_id")
private JobAdvertise jobAdvertise;
JobAdvertiseService
服务类:
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);
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);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在您的服务中,您需要更改为以下内容:
一个选项是将代码重写如下:
In your service, you need to change to the following:
An option would be to re-write the code as following: