2016-06-30 5 views
0

Für HQL-Abfrage die folgende ich tun kann:Ist es möglich, Abfrage-Timeout für native jpa-Abfrage in Hibernate?

entityManager.createQuery("update UserSession set userAgent = ''") 
      .setHint("org.hibernate.timeout", 1) 
      .executeUpdate(); 

Aber wenn ich das gleiche für native SQL-Abfrage-Timeout nicht für native Abfrage

entityManager.createNativeQuery("update user_session set user_agent = ''") 
      .setHint("org.hibernate.timeout", 1) 
      .executeUpdate(); 

Ist es möglich anzuwenden Timeout funktioniert?

Hinweis. Verhindern mögliche Fragen wie "Warum müssen Sie Tabelle user_session auf diese Weise aktualisieren" lassen Sie mich feststellen, dass ich im wirklichen Leben muss ich sehr komplexe Update-Abfrage ausführen. Für dieses Thema ist eine genaue Abfrage nicht wichtig.

+0

https://docs.jboss.org/hibernate/orm/4.3/javadocs/org/hibernate/jpa/QueryHints.html#HINT_TIMEOUT – Boris

Antwort

0

JPA spec 2.0+ spezifiziert eine Standardabfrage Spur

"javax.persistence.query.timeout" 

die mit JPQL, NativeQuery oder StoredProcedureQuery verwendet werden kann. Ich sehe wirklich keinen Sinn darin, Provider-spezifische Hinweise zu verwenden, wenn es einen Standard gibt.

+0

Dies funktioniert auch nicht für native Abfragen zumindest in meiner Version von Ruhezustand (4.1.0). – Boris

+0

also vorschlagen, dass Sie ein Problem auf Ihrem gewählten Anbieter, warum sie nicht unterstützen, was in der Spezifikation ist, und vielleicht haben sie einen Grund. –

Verwandte Themen