Всем привет. Возник вопрос недопониманием одного момента.
Предположим есть класс
@Entity
@Cacheable
public class Agenda {
@Id
@GeneratedValue
private Integer id;
@ManyToOne
@JoinColumn(name = "event")
private Event event;
@Size(max = 4000)
private String name;
@Size(max = 4000)
private String subject;
private Date startDateTime;
private Date endDateTime;
@ManyToOne
@JoinColumn(name = "room")
private Room room;
@ManyToOne
@JoinColumn(name = "classifier")
private Classifier classifier;
private Date datetime;
@ManyToOne
@JoinColumn(name = "composer")
private Profile composer;
@Version
private Integer version;
private boolean enable;
@Size(max = 250)
private String lector;
.... get'еры и set'еры
Я принимаю данную сущность в контроллере
@RequestMapping(method = RequestMethod.POST
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
public Agenda addAgenda(@RequestBody Agenda agenda) {
return agendaService.addAndReturn(agenda);
}
В качестве Room, Classifier, Profile, Event я должен принять только id'шники. Вопрос: как, зная эти самые айдишники, сохранить сущность Agenda в базу и при этом не городить огород в духе "на уровне сервиса определим соответственно репозитории сущностей Room, Classifier, Profile, Event", так как ради одного метода инжектить несколько репозитории не совсем хочется + я считаю не совсем разумно делать несколько запросов для извлечения соответствующих сущностей по айдишникам, а потом сохранять их в Agenda.
Скажите, пожалуйста, есть ли более изящный способ обойти эту проблему?