Операция findById над дочерним объектом в сценарии «Отображение один ко многим» возвращает рекурсивные дочерние объекты.Нужно решение - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть 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"
            }
        ]
    }
}

Как уже упоминалось выше, мне нужно только соответствующее предложение работы, но я не хочу, чтобы связанные заявки на работу снова появлялись в связанных предложениях работы.

Не могли бы вы порекомендовать меня?любое решение?

1 Ответ

0 голосов
/ 24 апреля 2019

Если вам не нужно извлекать (на стороне клиента) из JobEntity связанные JobApplicationEntitys, вы можете аннотировать это поле с помощью @ JsonIgnore

public class JobOfferEntity {

    @JsonIgnore
    @OneToMany(mappedBy = "relatedJobOffer",fetch = FetchType.LAZY)
    private List<JobApplicationEntity> jobApplications = new ArrayList<>();

}

источник: https://fasterxml.github.io/jackson-annotations/javadoc/2.5/com/fasterxml/jackson/annotation/JsonIgnore.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...