Я хочу дать общее время ожидания транзакции. Это значение должно быть задано параметрическим.
Этот блок кода является рабочим, но не параметрическим.
@Transactional(timeout=10)
@Override
public List<EntityModel> search(EntityModel model) {
List list = new ArrayList<EntityModel>();
try {
Criteria criteria = createCriteria(model);
list = criteria.list();
}
} catch (Exception e) {
}
return list;
}
Это параметрический, но не рабочий. Я дал значение тайм-аута из базы данных программно. Я воспользовался этой страницей http://neopatel.blogspot.com/2012/08/spring-query-timeout-or-transaction.html
@Transactional
@Override
public List<EntityModel> search(EntityModel model) {
List list = new ArrayList<EntityModel>();
try {
Criteria criteria = createCriteria(model);
EntityManagerFactoryInfo info = (EntityManagerFactoryInfo) entityManager.getEntityManagerFactory();
DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(info.getDataSource());
transactionManager.setDefaultTimeout(PropertyUtil.getTimeoutMiliseconds());
list = criteria.list();
}
} catch (Exception e) {
}
return list;
}