Мне нужны аннотации, подобные этой = JsonIgnoreExcept (Job.Title)
Вы не можете. Вам нужно аннотировать каждое поле в задании, которое вам не нужно, что даст вам
{...
job: {"title" : "someTitle"}
...}
В качестве альтернативы вы можете использовать проекцию Spring Data
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#projections
где можно было бы получить:
{...
"job": "someTitle"
...}
@Projection
public interface ApplicationSummary{
//all other fields you want
@Value("#{target.job.title}")
public String getJob();
}
Недостатком вышеупомянутого является необходимость указать все необходимые поля в интерфейсе проекции.
Лучшей альтернативой для 2-го класса, возможно, является использование преобразователя Джексона.
@Entity
public class Application {
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "job_id", nullable = false)
@JsonDeserializer(converter = CustomJobConverter.class)
private Job job;
}
с преобразователем:
public class CustomerJobConveter implements StdConverter<Job, String>{
public String convert(Job job){
return job.getTitle();
}
}