- $result = $this->getQuery()
- ->allRevisions()
- ->condition($this->entityType->getKey('id'), $entity_id)
- ->condition($this->entityType->getKey('revision_translation_affected'), 1, '=', $langcode)
- ->range(0, 1)
- ->sort($this->entityType->getKey('revision'), 'DESC')
- ->accessCheck(FALSE)
- ->execute();
-
- return key($result);
+ if (!isset($this->latestRevisionIds[$entity_id][$langcode])) {
+ $result = $this->getQuery()
+ ->allRevisions()
+ ->condition($this->entityType->getKey('id'), $entity_id)
+ ->condition($this->entityType->getKey('revision_translation_affected'), 1, '=', $langcode)
+ ->range(0, 1)
+ ->sort($this->entityType->getKey('revision'), 'DESC')
+ ->accessCheck(FALSE)
+ ->execute();
+
+ $this->latestRevisionIds[$entity_id][$langcode] = key($result);
+ }
+ return $this->latestRevisionIds[$entity_id][$langcode];