这应该是一个简单的问题。
我正在使用 Java 8,Hibernate 3.6
我有一个org.hibernate.Query
对象,我用它来打电话给
存储过程。我用query.executeUpdate();
来称呼它。
如何以编程方式为此查询设置超时?
因此,当我打电话给SP并且如果数据库在1小时内没有响应,则 它在Java端抛出了某种异常。请注意,我不是 想要使用一些会影响我所有查询的全局hibernate属性。
事实上,如果我想,我想我需要做他们在这里说的话,对吧?
我的意思是我需要设置javax.persistence.query.timeout
启动JVM时,对吗?但好吧,那不是我需要的。
Hibernate: set default query timeout?
非常感谢提前。
答案 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)