我有2个实体。 JobOfferEntity和JobApplicationEntity。 JobOfferEntity与JobApplicationEntity具有一对多映射。以下是实体:-
public class JobOfferEntity {
@JsonManagedReference
@OneToMany(mappedBy = "relatedJobOffer",fetch = FetchType.LAZY)
private List<JobApplicationEntity> jobApplications = new ArrayList<>();
}
public class JobApplicationEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "app_id")
private long applicationId;
@JsonBackReference
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "JOB_OFFER",updatable = false)
private JobOfferEntity relatedJobOffer;
}
我正在尝试根据applicationId获取工作申请;
JobApplicationEntity jobApplicationEntity = this.jobApplnRepo.findById(appId).orElseThrow(() -> new DataNotFoundException(""));
但是此操作返回了作业应用程序实体,但是问题在于它返回了子实体JobOfferEntity以及递归地嵌入到Job Offer实体内部的作业合并实体。请在下面找到json
{
"jobId": 0,
"applicationId": 1,
"candidateEmail": "Lalit.mishra@gmail.com",
"resumeTxt": "Sample resume",
"applicationStatus": "APPLIED",
"relatedJobOffer": {
"jobId": 1,
"jobTitle": "Amruta dev",
"jobDesc": "Sample C++ scientist",
"contactPerson": "Basho",
"createdDate": "2019-03-03",
"modifiedDate": "2019-03-03",
"jobOfferStatus": "ACTIVE",
"jobApplications": [
{
"applicationId": 1,
"candidateEmail": "Lalit.mishra@gmail.com",
"resumeTxt": "Sample resume",
"applicationStatus": "APPLIED"
}
]
}
}
如上所述,我只需要相关的工作机会,但我不想再次递归在相关工作机会中使用相关的工作机会。
您能推荐我任何解决方案吗?
答案 0 :(得分:0)
如果您不需要(从客户端)从JobEntity获取相关的JobApplicationEntity,则可以使用@JsonIgnore对该字段进行注释
public class JobOfferEntity {
@JsonIgnore
@OneToMany(mappedBy = "relatedJobOffer",fetch = FetchType.LAZY)
private List<JobApplicationEntity> jobApplications = new ArrayList<>();
}