Hibernate查询 - 超时

时间:2018-03-19 16:34:56

标签: java hibernate

这应该是一个简单的问题。

我正在使用 Java 8,Hibernate 3.6

我有一个org.hibernate.Query对象,我用它来打电话给 存储过程。我用query.executeUpdate();来称呼它。

如何以编程方式为此查询设置超时?

因此,当我打电话给SP并且如果数据库在1小时内没有响应,则 它在Java端抛出了某种异常。请注意,我不是 想要使用一些会影响我所有查询的全局hibernate属性。

事实上,如果我想,我想我需要做他们在这里说的话,对吧? 我的意思是我需要设置javax.persistence.query.timeout
启动JVM时,对吗?但好吧,那不是我需要的。

Hibernate: set default query timeout?

非常感谢提前。

2 个答案:

答案 0 :(得分:0)

我认为你可以使用hibernate Query#setHint。有关详细信息,请访问link

我们需要在执行查询之前设置超时,如下所示。

query.setHint("org.hibernate.timeout", 10) //10 is the query timeout in second.

注意:它也可能有用。

Statement#setQueryTimeout(seconds) 
PreparedStatement#setQueryTimeout(seconds)

两者都有setQueryTimeout方法。

答案 1 :(得分:0)

它在我的眼前,但最初我没有看到它。

org.hibernate.Query.setTimeout(int seconds)