Я разрабатываю приложение с Spring MVC, Hibernate и базу данных MySQL Контроллер обрабатывает запрос и ответ. Hibernate обрабатывает транзакцию базы данных.Spring MVC -HIbernate-MySQL
Моя проблема в том, когда один или два доступа службы он отлично работает, но больше, чем это прекрасно работают в течение некоторого времени, но после того, что я получаю ошибку Окрашенные блокировки тайм-аут
//My sample Controller code
@RequestMapping(value = "Bank", method = RequestMethod.GET)
public ResponseEntity<List<Bank>> getAllBank(@RequestHeader int data) {
try {
//My DAO implementation class for bank table
bankdao = new BankDAOImpl();
List<Bank> bank = bankdao.getAllBank(data);
return new ResponseEntity<List<Bank>>(bank, HttpStatus.OK);
} catch (HibernateException he) {
return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
} catch (Exception e) {
e.printStackTrace();
return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
}
}
//My DAO implementation code
public List<Bank> getAllBank(int organizationId) throws HibernateException {
//I'm opening session in every function
Session session = SessionFactoryUtil.getSessionFactory().openSession();
try {
session.beginTransaction();
Criteria criteria = session.createCriteria(Bank.class);
criteria.add(Restrictions.eq("organizationId", organizationId));
criteria.add(Restrictions.eq("deleteFlag", false));
criteria.addOrder(Order.asc("bankName"));
List<Bank> ls=criteria.list();
return ls;
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
session.getTransaction().commit();
session.close();
}
Это заседание вызывает проблема Если я создаю отдельную сессионную фабрику для всех функций вместо открытия сеанса
Будет ли это решить мою проблему?
попытайтесь использовать, @Autowired BankDAOImpl bankDAOImpl, вместо создания нового экземпляра –
Не могли бы вы вставить фактическую трассировку стека для исключения тайм-аута блокировки? Кроме того, выполняете ли вы обновления в другом месте кода, который вы не опубликовали или каким-либо другим способом (например, в клиенте базы данных mysql)? –
Есть ли у вас вложенные вызовы ваших методов dao? Когда один метод dao вызывает другое? Как настроить hibernate datasourse? – user1516873