当我的查询有时需要超过30分钟才能运行。我想抛出timeoutQueryException
我使用的是Hibernate 5.4.0版本,并使用Java 1.8连接到Oracle 12c服务器
我正在使用此代码块。我设置了超时,但是它不起作用。当需要长时间查询时,没有其他异常需要等待响应
public List<EntityModel> search(EntityModel model) {
List list = new ArrayList<EntityModel>();
try {
Criteria criteria = createCriteria(model);
if (criteria != null) {
int maxResults = PropertyUtil.getDBMaxResults();
criteria.setMaxResults(maxResults);
appendProjections(criteria);
appendReadDescriptor(criteria);
appendTransformer(criteria);
criteria.setTimeout(10000);//setting 10 second but it is not work
list = criteria.list();
}
} catch (Exception e) {
}
return list;
}
答案 0 :(得分:0)
@Transactional(timeout=10)
@Override
public List<EntityModel> search(EntityModel model) {
}
使用spring事务注释可以工作。