я развернул свой spring mvc appliction
на сервере (в производстве) спустя несколько месяцев, когда мой сервер приложений рухнул tomcat. Я спросил компанию, занимающуюся хостингом приложений, почему это происходит.
они сказали, что нет.файла war на сервере больше, и ваши подключения к базе данных более необходимы для их закрытия после транзакции.
но я хочу сказать, что я использую Spring MVC Framework, который заботится об открытии и закрытии соединения. Но хостингКоманда говорит мне, что организуйте ваш mysql
, если мой подход верен или нет, пожалуйста, посмотрите мой код
контроллер:
@GetMapping("/getStudentDetails")
public ResponseEntity<Map<String, Object>> getStudentDetails()
{
List<Students> stus= examService.getStudentDetails();
}
Реализация сервиса
@Override
@Transactional //here starts only one transaction
public List<Students> getStudentDetails( ) {
return examDao.getStudentDetails();
}
Реализация DAO
@Override
public List<Students> getStudentDetails() {
// here i will have no of connections to get student details as follows
currentSession = sessionFactory.getCurrentSession();
//get student details
Query query=currentSession .createQuery(" from StudentDetais");
query.list();
//get student parent details
Query query=currentSession .createQuery(" from StudentParentDetais");
query.list();
}
//get student personal details
Query query=currentSession .createQuery(" from StudentPersonalDetais");
query.list();
}
...........
............. so on...
в вышеприведенном коде с одной транзакцией, которую я принял нетсоединений с БД, например, для каждого студента я буду зацикливать одни и те же запросы, не возвращаясь к контроллеру.
этот подход портит мое приложение?
Должен ли я@Transactional
для каждого учащегося, так что соединение с учеником будет всегда открываться и закрываться.
отправить один идентификатор студента с контроллера, выполнить транзакцию и закрыть и отправить другой идентификатор студента из контроллераr и сделайте транзакцию .... так далее.
пожалуйста, решите мою проблему, которая не может иметь никаких соединений в одной транзакции?спасибо.