99
1010import org .orcid .persistence .dao .ProfileLastModifiedDao ;
1111import org .orcid .persistence .jpa .entities .IndexingStatus ;
12+ import org .springframework .beans .factory .annotation .Value ;
1213import org .springframework .transaction .annotation .Transactional ;
1314
1415public class ProfileLastModifiedDaoImpl implements ProfileLastModifiedDao {
1516
17+ @ Value ("${org.orcid.postgres.query.timeout:30000}" )
18+ private Integer queryTimeout ;
19+
1620 protected EntityManager entityManager ;
1721
1822 /**
@@ -28,6 +32,8 @@ public void updateLastModifiedDateAndIndexingStatus(String orcid, IndexingStatus
2832 Query updateQuery = entityManager .createQuery ("update ProfileEntity set lastModified = now(), indexingStatus = :indexingStatus where orcid = :orcid" );
2933 updateQuery .setParameter ("orcid" , orcid );
3034 updateQuery .setParameter ("indexingStatus" , indexingStatus );
35+ // Sets a timeout for this query
36+ updateQuery .setHint ("javax.persistence.query.timeout" , queryTimeout );
3137 updateQuery .executeUpdate ();
3238 }
3339
@@ -36,6 +42,8 @@ public void updateLastModifiedDateAndIndexingStatus(String orcid, IndexingStatus
3642 public void updateLastModifiedDateWithoutResult (String orcid ) {
3743 Query query = entityManager .createNativeQuery ("update profile set last_modified = now() where orcid = :orcid " );
3844 query .setParameter ("orcid" , orcid );
45+ // Sets a timeout for this query
46+ query .setHint ("javax.persistence.query.timeout" , queryTimeout );
3947 query .executeUpdate ();
4048 }
4149
0 commit comments