Transaction timeouts for JPA translate to "javax.persistence.query.timeout" only (for EclipseLink compatibility)
Issue: SPR-10068
This commit is contained in:
@@ -254,8 +254,7 @@ public abstract class EntityManagerFactoryUtils {
|
||||
|
||||
/**
|
||||
* Apply the current transaction timeout, if any, to the given JPA Query object.
|
||||
* <p>This method sets the JPA 2.0 query hints "javax.persistence.lock.timeout"
|
||||
* and "javax.persistence.query.timeout" accordingly.
|
||||
* <p>This method sets the JPA 2.0 query hint "javax.persistence.query.timeout" accordingly.
|
||||
* @param query the JPA Query object
|
||||
* @param emf JPA EntityManagerFactory that the Query was created for
|
||||
*/
|
||||
@@ -263,17 +262,11 @@ public abstract class EntityManagerFactoryUtils {
|
||||
EntityManagerHolder emHolder = (EntityManagerHolder) TransactionSynchronizationManager.getResource(emf);
|
||||
if (emHolder != null && emHolder.hasTimeout()) {
|
||||
int timeoutValue = (int) emHolder.getTimeToLiveInMillis();
|
||||
try {
|
||||
query.setHint("javax.persistence.lock.timeout", timeoutValue);
|
||||
}
|
||||
catch (IllegalArgumentException ex) {
|
||||
// oh well, at least we tried...
|
||||
}
|
||||
try {
|
||||
query.setHint("javax.persistence.query.timeout", timeoutValue);
|
||||
}
|
||||
catch (IllegalArgumentException ex) {
|
||||
// once again, at least we tried...
|
||||
// oh well, at least we tried...
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -283,11 +276,10 @@ public abstract class EntityManagerFactoryUtils {
|
||||
* <code>org.springframework.dao</code> hierarchy.
|
||||
* Return null if no translation is appropriate: any other exception may
|
||||
* have resulted from user code, and should not be translated.
|
||||
* <p>The most important cases like object not found or optimistic locking
|
||||
* failure are covered here. For more fine-granular conversion, JpaAccessor and
|
||||
* JpaTransactionManager support sophisticated translation of exceptions via a
|
||||
* JpaDialect.
|
||||
* @param ex runtime exception that occured
|
||||
* <p>The most important cases like object not found or optimistic locking failure
|
||||
* are covered here. For more fine-granular conversion, JpaTransactionManager etc
|
||||
* support sophisticated translation of exceptions via a JpaDialect.
|
||||
* @param ex runtime exception that occurred
|
||||
* @return the corresponding DataAccessException instance,
|
||||
* or <code>null</code> if the exception should not be translated
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user