JavaまたはHibernateを使用して特定のクエリのタイムアウトを設定する方法。私が直面している問題は、大量のデータを何度か取得しなければならないクエリの中には、応答時間の長いアプリケーションに応答しないものがあるということです。クエリに基づいてタイムアウトを設定する
1
A
答えて
1
HibernateのクエリはsetTimeout()方法
Query query = session.createQuery(someQueryString);
query.setTimeout(theTimeOut);
0
を持っているHibernateはトランザクションタイムアウトをサポートしています。
//set transaction timeout to 5 seconds at session
Session sess = factory.openSession();
sess.getTransaction().setTimeout(5);
のことができます。また、query levelでセットアップ。
Query q = sess.createQuery("from....")
.setTimeOut(3);
1
JPA 標準性javax.persistence.query.timeout
は、各クエリに「ヒント」として提供することができます。
query.setHint("javax.persistence.query.timeout", someTimeout);
したがって、コードを1つのJPAプロバイダまたは他のJPAプロバイダに割り当てるのは避けてください。