如何使用Java或Hibernate为某些特定查询设置超时。我面临的问题是,有些查询(有时需要获取大量数据)在较长的时间内不会响应,从而导致应用程序没有响应。
发布于 2016-04-14 23:36:08
Hibernate查询有setTimeout()方法
Query query = session.createQuery(someQueryString);
query.setTimeout(theTimeOut);
发布于 2016-04-14 23:40:39
JPA 标准属性javax.persistence.query.timeout
也可以作为每个查询的“提示”提供。
query.setHint("javax.persistence.query.timeout", someTimeout);
因此,避免将代码绑定到一个JPA提供程序或另一个JPA提供程序。
发布于 2016-04-14 23:39:21
Hibernate支持事务超时:
//set transaction timeout to 5 seconds at session
Session sess = factory.openSession();
sess.getTransaction().setTimeout(5);
您还可以在查询级别设置。
Query q = sess.createQuery("from....")
.setTimeOut(3);
https://stackoverflow.com/questions/36640788
复制相似问题