у нас есть три таблицы People (id, name), Registrations (id, p_id, sub_id, sem, date), Subjects (id, name, Инструктор) ... Я хочу знать, какой правильный слой для написания логикисохранить список объектов регистрации в БД?Я имею в виду, что в настоящее время у меня есть следующий код в классе ResitrationController ..
@RequestMapping(..)
public String addRegistrations(@RequestParam(value="personId", required=true) int personId, @RequestParam(value="subjectIdList", required=true) List<Integer> subjectIdList){
List<Registrations> registrationList = new ArrayList<Registrations>();
for(int subjectId : subjectIdList){
Registration registration = new Registration();
registration.setSem("fall-11");
registration.setDate(new Date());
registration.setPerson(personService.getPersonById(personId));
registration.setSubject(subjectService.getSubjectById(subjectId));
registrationList.add(registration);
}
registrationService.addRegistrations(registrationList);
}
Метод addRegistration RegistrationService просто вызывает тот же метод для RegistrationDao RegistraionService () {@Autowired REgistraionDao regDao;
@Transactional
addRegistration(registrationList){
regDao.addRegistration(registrationList);
}
}
RegistrationDao(){
@Autowired SessionFactory sessionFactory;
addRegistration(registrationList){
for(Registration registration: registrationList){
sessionFactory.getCurrentSession().save(registration);
}
}
}
IХотите знать, правильно ли использовать эту логику в методе контроллера или перенести ее в другое место?Я действительно хочу отправить список регистраций методу RegistrationService, потому что я хотел бы, чтобы вся транзакция откатывалась, даже если один из объектов не был сохранен .. спасибо