当我的查询有时需要超过 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;
}
最佳答案
@Transactional(timeout=10)
@Override
public List<EntityModel> search(EntityModel model) {
}
使用 Spring 事务注释是有效的。
关于java - 当查询花费更多时间时,如何在 Hibernate 中抛出 TimeOutException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56124563/