当查询需要更多时间时,如何在Hibernate中丢弃TimeOutException



当我的查询有时需要超过30分钟才能运行时。我想抛出timeoutqueryException

我正在使用Hibernate 5.4.0版本,并使用Java 1.8连接到Oracle 12c Server

我正在使用此代码块。我设置了超时,但这是不起作用的。当花费很长时间的查询没有其他脸部例外,我必须等待回复

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) {
}

使用春季交易注释。

相关内容

  • 没有找到相关文章

最新更新