From 117ed8490998980fe211ffe351190e800f4926f1 Mon Sep 17 00:00:00 2001
From: Alexander Schnitzler <git@alexanderschnitzler.de>
Date: Sat, 30 Oct 2021 14:31:28 +0200
Subject: [PATCH] [TASK] Replace property name strings of AbstractDomainObject
 with constants
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Releases: main
Resolves: #96046
Change-Id: I86edaa24b08808b70b92687f83a850ff32a74dc7
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72007
Tested-by: core-ci <typo3@b13.com>
Tested-by: Stefan Bürk <stefan@buerk.tech>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Stefan Bürk <stefan@buerk.tech>
Reviewed-by: Benni Mack <benni@typo3.org>
---
 .../DomainObject/AbstractDomainObject.php     |  10 +-
 .../Classes/Persistence/Generic/Backend.php   |  25 +-
 .../Persistence/Generic/Mapper/DataMapper.php |  29 +-
 .../Generic/Storage/Typo3DbBackend.php        |   3 +-
 .../Generic/Storage/Typo3DbQueryParser.php    |   6 +-
 .../Tests/Functional/Persistence/AddTest.php  |   3 +-
 .../Persistence/QueryLocalizedDataTest.php    | 617 +++++++++---------
 .../Tests/Unit/Reflection/ClassSchemaTest.php |  11 +-
 8 files changed, 358 insertions(+), 346 deletions(-)

diff --git a/typo3/sysext/extbase/Classes/DomainObject/AbstractDomainObject.php b/typo3/sysext/extbase/Classes/DomainObject/AbstractDomainObject.php
index cddf255524fe..2790b9e5fee1 100644
--- a/typo3/sysext/extbase/Classes/DomainObject/AbstractDomainObject.php
+++ b/typo3/sysext/extbase/Classes/DomainObject/AbstractDomainObject.php
@@ -29,6 +29,12 @@ use TYPO3\CMS\Extbase\Persistence\ObjectMonitoringInterface;
  */
 abstract class AbstractDomainObject implements DomainObjectInterface, ObjectMonitoringInterface
 {
+    public const PROPERTY_UID = 'uid';
+    public const PROPERTY_PID = 'pid';
+    public const PROPERTY_LOCALIZED_UID = '_localizedUid';
+    public const PROPERTY_LANGUAGE_UID = '_languageUid';
+    public const PROPERTY_VERSIONED_UID = '_versionedUid';
+
     /**
      * @var int The uid of the record. The uid is only unique in the context of the database table.
      */
@@ -251,8 +257,8 @@ abstract class AbstractDomainObject implements DomainObjectInterface, ObjectMoni
      */
     public function _isDirty($propertyName = null)
     {
-        if ($this->uid !== null && $this->_getCleanProperty('uid') !== null && $this->uid != $this->_getCleanProperty('uid')) {
-            throw new TooDirtyException('The uid "' . $this->uid . '" has been modified, that is simply too much.', 1222871239);
+        if ($this->uid !== null && $this->_getCleanProperty(self::PROPERTY_UID) !== null && $this->uid != $this->_getCleanProperty(self::PROPERTY_UID)) {
+            throw new TooDirtyException('The ' . self::PROPERTY_UID . ' "' . $this->uid . '" has been modified, that is simply too much.', 1222871239);
         }
 
         if ($propertyName === null) {
diff --git a/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php b/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php
index 80a6cd636759..f2d8974cc43c 100644
--- a/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php
+++ b/typo3/sysext/extbase/Classes/Persistence/Generic/Backend.php
@@ -20,6 +20,7 @@ use TYPO3\CMS\Core\Database\ReferenceIndex;
 use TYPO3\CMS\Core\SingletonInterface;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface;
+use TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject;
 use TYPO3\CMS\Extbase\DomainObject\AbstractValueObject;
 use TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface;
 use TYPO3\CMS\Extbase\Event\Persistence\EntityAddedToPersistenceEvent;
@@ -509,7 +510,7 @@ class Backend implements BackendInterface, SingletonInterface
         $row = [];
         $parentKeyFieldName = $parentColumnMap->getParentKeyFieldName();
         if ($parentKeyFieldName !== null) {
-            $row[$parentKeyFieldName] = $parentObject->_getProperty('_localizedUid') ?: $parentObject->getUid();
+            $row[$parentKeyFieldName] = $parentObject->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID) ?: $parentObject->getUid();
             $parentTableFieldName = $parentColumnMap->getParentTableFieldName();
             if ($parentTableFieldName !== null) {
                 $row[$parentTableFieldName] = $parentDataMap->getTableName();
@@ -577,7 +578,7 @@ class Backend implements BackendInterface, SingletonInterface
         if ($object instanceof AbstractValueObject) {
             $result = $this->getUidOfAlreadyPersistedValueObject($object);
             if ($result !== null) {
-                $object->_setProperty('uid', $result);
+                $object->_setProperty(AbstractDomainObject::PROPERTY_UID, $result);
                 return;
             }
         }
@@ -604,9 +605,9 @@ class Backend implements BackendInterface, SingletonInterface
             }
         }
         $this->addCommonFieldsToRow($object, $row);
-        if ($dataMap->getLanguageIdColumnName() !== null && $object->_getProperty('_languageUid') === null) {
+        if ($dataMap->getLanguageIdColumnName() !== null && $object->_getProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID) === null) {
             $row[$dataMap->getLanguageIdColumnName()] = 0;
-            $object->_setProperty('_languageUid', 0);
+            $object->_setProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID, 0);
         }
         if ($dataMap->getTranslationOriginColumnName() !== null) {
             $row[$dataMap->getTranslationOriginColumnName()] = 0;
@@ -625,7 +626,7 @@ class Backend implements BackendInterface, SingletonInterface
             }
         }
         $uid = $this->storageBackend->addRow($dataMap->getTableName(), $row);
-        $object->_setProperty('uid', (int)$uid);
+        $object->_setProperty(AbstractDomainObject::PROPERTY_UID, (int)$uid);
         $object->setPid((int)$row['pid']);
         if ((int)$uid >= 1) {
             $this->eventDispatcher->dispatch(new EntityAddedToPersistenceEvent($object));
@@ -665,8 +666,8 @@ class Backend implements BackendInterface, SingletonInterface
         $dataMap = $this->dataMapFactory->buildDataMap(get_class($parentObject));
         $columnMap = $dataMap->getColumnMap($propertyName);
         $parentUid = $parentObject->getUid();
-        if ($parentObject->_getProperty('_localizedUid') !== null) {
-            $parentUid = $parentObject->_getProperty('_localizedUid');
+        if ($parentObject->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID) !== null) {
+            $parentUid = $parentObject->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID);
         }
         $row = [
             $columnMap->getParentKeyFieldName() => (int)$parentUid,
@@ -780,9 +781,9 @@ class Backend implements BackendInterface, SingletonInterface
         $this->addCommonFieldsToRow($object, $row);
         $row['uid'] = $object->getUid();
         if ($dataMap->getLanguageIdColumnName() !== null) {
-            $row[$dataMap->getLanguageIdColumnName()] = (int)$object->_getProperty('_languageUid');
-            if ($object->_getProperty('_localizedUid') !== null) {
-                $row['uid'] = $object->_getProperty('_localizedUid');
+            $row[$dataMap->getLanguageIdColumnName()] = (int)$object->_getProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID);
+            if ($object->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID) !== null) {
+                $row['uid'] = $object->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID);
             }
         }
         $this->storageBackend->updateRow($dataMap->getTableName(), $row);
@@ -923,8 +924,8 @@ class Backend implements BackendInterface, SingletonInterface
     {
         $frameworkConfiguration = $this->configurationManager->getConfiguration(ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK);
         if ($object !== null) {
-            if (ObjectAccess::isPropertyGettable($object, 'pid')) {
-                $pid = ObjectAccess::getProperty($object, 'pid');
+            if (ObjectAccess::isPropertyGettable($object, AbstractDomainObject::PROPERTY_PID)) {
+                $pid = ObjectAccess::getProperty($object, AbstractDomainObject::PROPERTY_PID);
                 if (isset($pid)) {
                     return (int)$pid;
                 }
diff --git a/typo3/sysext/extbase/Classes/Persistence/Generic/Mapper/DataMapper.php b/typo3/sysext/extbase/Classes/Persistence/Generic/Mapper/DataMapper.php
index 80e5007cafb7..2f90878a8def 100644
--- a/typo3/sysext/extbase/Classes/Persistence/Generic/Mapper/DataMapper.php
+++ b/typo3/sysext/extbase/Classes/Persistence/Generic/Mapper/DataMapper.php
@@ -20,6 +20,7 @@ use TYPO3\CMS\Core\Context\Context;
 use TYPO3\CMS\Core\Database\Query\QueryHelper;
 use TYPO3\CMS\Core\Database\RelationHandler;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject;
 use TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface;
 use TYPO3\CMS\Extbase\Event\Persistence\AfterObjectThawedEvent;
 use TYPO3\CMS\Extbase\Persistence;
@@ -178,18 +179,18 @@ class DataMapper
         $className = get_class($object);
         $classSchema = $this->reflectionService->getClassSchema($className);
         $dataMap = $this->getDataMap($className);
-        $object->_setProperty('uid', (int)$row['uid']);
-        $object->_setProperty('pid', (int)($row['pid'] ?? 0));
-        $object->_setProperty('_localizedUid', (int)$row['uid']);
-        $object->_setProperty('_versionedUid', (int)$row['uid']);
+        $object->_setProperty(AbstractDomainObject::PROPERTY_UID, (int)$row['uid']);
+        $object->_setProperty(AbstractDomainObject::PROPERTY_PID, (int)($row['pid'] ?? 0));
+        $object->_setProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID, (int)$row['uid']);
+        $object->_setProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID, (int)$row['uid']);
         if ($dataMap->getLanguageIdColumnName() !== null) {
-            $object->_setProperty('_languageUid', (int)$row[$dataMap->getLanguageIdColumnName()]);
+            $object->_setProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID, (int)$row[$dataMap->getLanguageIdColumnName()]);
             if (isset($row['_LOCALIZED_UID'])) {
-                $object->_setProperty('_localizedUid', (int)$row['_LOCALIZED_UID']);
+                $object->_setProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID, (int)$row['_LOCALIZED_UID']);
             }
         }
         if (!empty($row['_ORIG_uid']) && !empty($GLOBALS['TCA'][$dataMap->getTableName()]['ctrl']['versioningWS'])) {
-            $object->_setProperty('_versionedUid', (int)$row['_ORIG_uid']);
+            $object->_setProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID, (int)$row['_ORIG_uid']);
         }
         $properties = $object->_getProperties();
         foreach ($properties as $propertyName => $propertyValue) {
@@ -406,7 +407,7 @@ class DataMapper
                 //pass language of parent record to child objects, so they can be overlaid correctly in case
                 //e.g. findByUid is used.
                 //the languageUid is used for getRecordOverlay later on, despite RespectSysLanguage being false
-                $languageUid = (int)$parentObject->_getProperty('_languageUid');
+                $languageUid = (int)$parentObject->_getProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID);
                 $query->getQuerySettings()->setLanguageUid($languageUid);
             }
         }
@@ -471,8 +472,8 @@ class DataMapper
             // versioned record, so this must be taken into account here and the versioned record's UID must be used.
             if ($columnMap->getTypeOfRelation() === ColumnMap::RELATION_HAS_AND_BELONGS_TO_MANY) {
                 // The versioned UID is used ideally the version ID of a translated record, so this takes precedence over the localized UID
-                if ($value->_hasProperty('_versionedUid') && $value->_getProperty('_versionedUid') > 0 && $value->_getProperty('_versionedUid') !== $value->getUid()) {
-                    $value = (int)$value->_getProperty('_versionedUid');
+                if ($value->_hasProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID) && $value->_getProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID) > 0 && $value->_getProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID) !== $value->getUid()) {
+                    $value = (int)$value->_getProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID);
                 }
             }
             $constraint = $query->equals($columnMap->getParentKeyFieldName(), $value);
@@ -514,10 +515,10 @@ class DataMapper
     {
         $parentId = $parentObject->getUid();
         // versionedUid in a multi-language setup is the overlaid versioned AND translated ID
-        if ($parentObject->_hasProperty('_versionedUid') && $parentObject->_getProperty('_versionedUid') > 0 && $parentObject->_getProperty('_versionedUid') !== $parentId) {
-            $parentId = $parentObject->_getProperty('_versionedUid');
-        } elseif ($parentObject->_hasProperty('_languageUid') && $parentObject->_getProperty('_languageUid') > 0) {
-            $parentId = $parentObject->_getProperty('_localizedUid');
+        if ($parentObject->_hasProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID) && $parentObject->_getProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID) > 0 && $parentObject->_getProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID) !== $parentId) {
+            $parentId = $parentObject->_getProperty(AbstractDomainObject::PROPERTY_VERSIONED_UID);
+        } elseif ($parentObject->_hasProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID) && $parentObject->_getProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID) > 0) {
+            $parentId = $parentObject->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID);
         }
         $relationHandler = GeneralUtility::makeInstance(RelationHandler::class);
         $relationHandler->setWorkspaceId($workspaceId);
diff --git a/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbBackend.php b/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbBackend.php
index 6ed71657f58d..68982e27b9d3 100644
--- a/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbBackend.php
+++ b/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbBackend.php
@@ -32,6 +32,7 @@ use TYPO3\CMS\Core\Http\ApplicationType;
 use TYPO3\CMS\Core\SingletonInterface;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Core\Versioning\VersionState;
+use TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject;
 use TYPO3\CMS\Extbase\DomainObject\AbstractValueObject;
 use TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper;
 use TYPO3\CMS\Extbase\Persistence\Generic\Qom;
@@ -379,7 +380,7 @@ class Typo3DbBackend implements BackendInterface, SingletonInterface
             $propertyName = (string)$propertyName;
 
             // @todo We couple the Backend to the Entity implementation (uid, isClone); changes there breaks this method
-            if ($dataMap->isPersistableProperty($propertyName) && $propertyName !== 'uid' && $propertyName !== 'pid' && $propertyName !== 'isClone') {
+            if ($dataMap->isPersistableProperty($propertyName) && $propertyName !== AbstractDomainObject::PROPERTY_UID && $propertyName !== AbstractDomainObject::PROPERTY_PID && $propertyName !== 'isClone') {
                 $fieldName = $dataMap->getColumnMap($propertyName)->getColumnName();
                 if ($propertyValue === null) {
                     $whereClause[] = $queryBuilder->expr()->isNull($fieldName);
diff --git a/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbQueryParser.php b/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbQueryParser.php
index 41ff00bdacdb..9dd204450291 100644
--- a/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbQueryParser.php
+++ b/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbQueryParser.php
@@ -515,10 +515,10 @@ class Typo3DbQueryParser
     protected function createTypedNamedParameter($value, int $forceType = null): string
     {
         if ($value instanceof AbstractDomainObject
-            && $value->_hasProperty('_localizedUid')
-            && $value->_getProperty('_localizedUid') > 0
+            && $value->_hasProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID)
+            && $value->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID) > 0
         ) {
-            $plainValue = (int)$value->_getProperty('_localizedUid');
+            $plainValue = (int)$value->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID);
         } else {
             $plainValue = $this->dataMapper->getPlainValue($value);
         }
diff --git a/typo3/sysext/extbase/Tests/Functional/Persistence/AddTest.php b/typo3/sysext/extbase/Tests/Functional/Persistence/AddTest.php
index 1e7ebc11bd1d..331b7f2e77df 100644
--- a/typo3/sysext/extbase/Tests/Functional/Persistence/AddTest.php
+++ b/typo3/sysext/extbase/Tests/Functional/Persistence/AddTest.php
@@ -21,6 +21,7 @@ use ExtbaseTeam\BlogExample\Domain\Model\Blog;
 use ExtbaseTeam\BlogExample\Domain\Repository\BlogRepository;
 use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
 use TYPO3\CMS\Core\Database\ConnectionPool;
+use TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject;
 use TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager;
 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
 
@@ -119,7 +120,7 @@ class AddTest extends FunctionalTestCase
         $newBlogTitle = 'aDi1oogh';
         $newBlog = new Blog();
         $newBlog->setTitle($newBlogTitle);
-        $newBlog->_setProperty('_languageUid', -1);
+        $newBlog->_setProperty(AbstractDomainObject::PROPERTY_LANGUAGE_UID, -1);
 
         $this->blogRepository->add($newBlog);
         $this->persistentManager->persistAll();
diff --git a/typo3/sysext/extbase/Tests/Functional/Persistence/QueryLocalizedDataTest.php b/typo3/sysext/extbase/Tests/Functional/Persistence/QueryLocalizedDataTest.php
index 0b5c38c6151a..5288d6779a14 100644
--- a/typo3/sysext/extbase/Tests/Functional/Persistence/QueryLocalizedDataTest.php
+++ b/typo3/sysext/extbase/Tests/Functional/Persistence/QueryLocalizedDataTest.php
@@ -26,6 +26,7 @@ use TYPO3\CMS\Core\Domain\Repository\PageRepository;
 use TYPO3\CMS\Core\Http\ServerRequest;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Extbase\Configuration\ConfigurationManager;
+use TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject;
 use TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager;
 use TYPO3\CMS\Extbase\Persistence\ObjectStorage;
 use TYPO3\CMS\Extbase\Persistence\QueryInterface;
@@ -112,13 +113,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase
         self::assertEquals(['Post 2', 2, 2, 'Blog 1', 1, 1, 'John', 1, 1], [
             $post2->getTitle(),
             $post2->getUid(),
-            $post2->_getProperty('_localizedUid'),
+            $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getBlog()->getTitle(),
             $post2->getBlog()->getUid(),
-            $post2->getBlog()->_getProperty('_localizedUid'),
+            $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getAuthor()->getFirstname(),
             $post2->getAuthor()->getUid(),
-            $post2->getAuthor()->_getProperty('_localizedUid'),
+            $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
         ]);
 
         //this is needed because of https://forge.typo3.org/issues/59992
@@ -129,13 +130,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase
         self::assertEquals(['Post 2 - DK', 2, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [
             $post2translated->getTitle(),
             $post2translated->getUid(),
-            $post2translated->_getProperty('_localizedUid'),
+            $post2translated->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2translated->getBlog()->getTitle(),
             $post2translated->getBlog()->getUid(),
-            $post2translated->getBlog()->_getProperty('_localizedUid'),
+            $post2translated->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2translated->getAuthor()->getFirstname(),
             $post2translated->getAuthor()->getUid(),
-            $post2translated->getAuthor()->_getProperty('_localizedUid'),
+            $post2translated->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
         ]);
     }
 
@@ -153,13 +154,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase
         self::assertEquals(['Post 2', 2, 2, 'Blog 1', 1, 1, 'John', 1, 1], [
             $post2->getTitle(),
             $post2->getUid(),
-            $post2->_getProperty('_localizedUid'),
+            $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getBlog()->getTitle(),
             $post2->getBlog()->getUid(),
-            $post2->getBlog()->_getProperty('_localizedUid'),
+            $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getAuthor()->getFirstname(),
             $post2->getAuthor()->getUid(),
-            $post2->getAuthor()->_getProperty('_localizedUid'),
+            $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
         ]);
 
         //this is needed because of https://forge.typo3.org/issues/59992
@@ -169,13 +170,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase
         self::assertEquals(['Post 2 - DK', 2, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [
             $post2translated->getTitle(),
             $post2translated->getUid(),
-            $post2translated->_getProperty('_localizedUid'),
+            $post2translated->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2translated->getBlog()->getTitle(),
             $post2translated->getBlog()->getUid(),
-            $post2translated->getBlog()->_getProperty('_localizedUid'),
+            $post2translated->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2translated->getAuthor()->getFirstname(),
             $post2translated->getAuthor()->getUid(),
-            $post2translated->getAuthor()->_getProperty('_localizedUid'),
+            $post2translated->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
         ]);
     }
 
@@ -193,13 +194,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase
         self::assertEquals(['Post 2 - DK', 2, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [
             $post2->getTitle(),
             $post2->getUid(),
-            $post2->_getProperty('_localizedUid'),
+            $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getBlog()->getTitle(),
             $post2->getBlog()->getUid(),
-            $post2->getBlog()->_getProperty('_localizedUid'),
+            $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getAuthor()->getFirstname(),
             $post2->getAuthor()->getUid(),
-            $post2->getAuthor()->_getProperty('_localizedUid'),
+            $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
         ]);
 
         //this is needed because of https://forge.typo3.org/issues/59992
@@ -208,13 +209,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase
         self::assertEquals(['Post 2 - DK', 2, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [
             $post2translated->getTitle(),
             $post2translated->getUid(),
-            $post2translated->_getProperty('_localizedUid'),
+            $post2translated->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2translated->getBlog()->getTitle(),
             $post2translated->getBlog()->getUid(),
-            $post2translated->getBlog()->_getProperty('_localizedUid'),
+            $post2translated->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2translated->getAuthor()->getFirstname(),
             $post2translated->getAuthor()->getUid(),
-            $post2translated->getAuthor()->_getProperty('_localizedUid'),
+            $post2translated->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
         ]);
     }
 
@@ -232,13 +233,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase
         self::assertEquals(['Post 2 - DK', 2, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [
             $post2->getTitle(),
             $post2->getUid(),
-            $post2->_getProperty('_localizedUid'),
+            $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getBlog()->getTitle(),
             $post2->getBlog()->getUid(),
-            $post2->getBlog()->_getProperty('_localizedUid'),
+            $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getAuthor()->getFirstname(),
             $post2->getAuthor()->getUid(),
-            $post2->getAuthor()->_getProperty('_localizedUid'),
+            $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
         ]);
 
         //this is needed because of https://forge.typo3.org/issues/59992
@@ -248,13 +249,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase
         self::assertEquals(['Post 2 - DK', 2, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [
             $post2translated->getTitle(),
             $post2translated->getUid(),
-            $post2translated->_getProperty('_localizedUid'),
+            $post2translated->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2translated->getBlog()->getTitle(),
             $post2translated->getBlog()->getUid(),
-            $post2translated->getBlog()->_getProperty('_localizedUid'),
+            $post2translated->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2translated->getAuthor()->getFirstname(),
             $post2translated->getAuthor()->getUid(),
-            $post2translated->getAuthor()->_getProperty('_localizedUid'),
+            $post2translated->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
         ]);
     }
 
@@ -281,13 +282,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase
         self::assertEquals(['Post 2', 2, 2, 'Blog 1', 1, 1, 'John', 1, 1], [
             $post2->getTitle(),
             $post2->getUid(),
-            $post2->_getProperty('_localizedUid'),
+            $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getBlog()->getTitle(),
             $post2->getBlog()->getUid(),
-            $post2->getBlog()->_getProperty('_localizedUid'),
+            $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getAuthor()->getFirstname(),
             $post2->getAuthor()->getUid(),
-            $post2->getAuthor()->_getProperty('_localizedUid'),
+            $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
         ]);
 
         //this is needed because of https://forge.typo3.org/issues/59992
@@ -328,13 +329,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase
         self::assertEquals(['Post 2 - DK', 2, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [
             $post2->getTitle(),
             $post2->getUid(),
-            $post2->_getProperty('_localizedUid'),
+            $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getBlog()->getTitle(),
             $post2->getBlog()->getUid(),
-            $post2->getBlog()->_getProperty('_localizedUid'),
+            $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getAuthor()->getFirstname(),
             $post2->getAuthor()->getUid(),
-            $post2->getAuthor()->_getProperty('_localizedUid'),
+            $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
         ]);
     }
 
@@ -359,13 +360,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase
         self::assertEquals(['Post 2', 2, 2, 'Blog 1', 1, 1, 'John', 1, 1], [
             $post2->getTitle(),
             $post2->getUid(),
-            $post2->_getProperty('_localizedUid'),
+            $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getBlog()->getTitle(),
             $post2->getBlog()->getUid(),
-            $post2->getBlog()->_getProperty('_localizedUid'),
+            $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getAuthor()->getFirstname(),
             $post2->getAuthor()->getUid(),
-            $post2->getAuthor()->_getProperty('_localizedUid'),
+            $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
         ]);
 
         //this is needed because of https://forge.typo3.org/issues/59992
@@ -406,13 +407,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase
         self::assertEquals(['Post 2 - DK', 11, 11, 'Blog 1 DK', 1, 2, 'Translated John', 1, 2], [
             $post2->getTitle(),
             $post2->getUid(),
-            $post2->_getProperty('_localizedUid'),
+            $post2->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getBlog()->getTitle(),
             $post2->getBlog()->getUid(),
-            $post2->getBlog()->_getProperty('_localizedUid'),
+            $post2->getBlog()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
             $post2->getAuthor()->getFirstname(),
             $post2->getAuthor()->getUid(),
-            $post2->getAuthor()->_getProperty('_localizedUid'),
+            $post2->getAuthor()->_getProperty(AbstractDomainObject::PROPERTY_LOCALIZED_UID),
         ]);
     }
 
@@ -422,99 +423,99 @@ class QueryLocalizedDataTest extends FunctionalTestCase
         $lang0Expected = [
             [
                 'title' => 'Post 4',
-                'uid' => 4,
-                '_localizedUid' => 4,
+                AbstractDomainObject::PROPERTY_UID => 4,
+                AbstractDomainObject::PROPERTY_LOCALIZED_UID => 4,
                 'content' => 'A - content',
                 'blog.title' => 'Blog 1',
-                'blog.uid' => 1,
-                'blog._localizedUid' => 1,
+                'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'author.firstname' => 'John',
-                'author.uid' => 1,
-                'author._localizedUid' => 1,
+                'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'secondAuthor.firstname' => 'John',
-                'secondAuthor.uid' => 1,
-                'secondAuthor._localizedUid' => 1,
+                'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'tags' => [],
             ],
             [
                 'title' => 'Post 2',
-                'uid' => 2,
-                '_localizedUid' => 2,
+                AbstractDomainObject::PROPERTY_UID => 2,
+                AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                 'content' => 'B - content',
                 'blog.title' => 'Blog 1',
-                'blog.uid' => 1,
-                'blog._localizedUid' => 1,
+                'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'author.firstname' => 'John',
-                'author.uid' => 1,
-                'author._localizedUid' => 1,
+                'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'secondAuthor.firstname' => 'John',
-                'secondAuthor.uid' => 1,
-                'secondAuthor._localizedUid' => 1,
+                'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'tags.0.name' => 'Tag2',
-                'tags.0.uid' => 2,
-                'tags.0._localizedUid' => 2,
+                'tags.0.' . AbstractDomainObject::PROPERTY_UID => 2,
+                'tags.0.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                 'tags.1.name' => 'Tag3',
-                'tags.1.uid' => 3,
-                'tags.1._localizedUid' => 3,
+                'tags.1.' . AbstractDomainObject::PROPERTY_UID => 3,
+                'tags.1.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 3,
                 'tags.2.name' => 'Tag4',
-                'tags.2.uid' => 4,
-                'tags.2._localizedUid' => 4,
+                'tags.2.' . AbstractDomainObject::PROPERTY_UID => 4,
+                'tags.2.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 4,
             ],
             [
                 'title' => 'Post 7',
-                'uid' => 7,
-                '_localizedUid' => 7,
+                AbstractDomainObject::PROPERTY_UID => 7,
+                AbstractDomainObject::PROPERTY_LOCALIZED_UID => 7,
                 'content' => 'C - content',
                 'blog.title' => 'Blog 1',
-                'blog.uid' => 1,
-                'blog._localizedUid' => 1,
+                'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'author.firstname' => 'John',
-                'author.uid' => 1,
-                'author._localizedUid' => 1,
+                'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'secondAuthor.firstname' => 'John',
-                'secondAuthor.uid' => 1,
-                'secondAuthor._localizedUid' => 1,
+                'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'tags' => [],
             ],
             [
                 'title' => 'Post 6',
-                'uid' => 6,
-                '_localizedUid' => 6,
+                AbstractDomainObject::PROPERTY_UID => 6,
+                AbstractDomainObject::PROPERTY_LOCALIZED_UID => 6,
                 'content' => 'F - content',
                 'blog.title' => 'Blog 1',
-                'blog.uid' => 1,
-                'blog._localizedUid' => 1,
+                'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'author.firstname' => 'John',
-                'author.uid' => 1,
-                'author._localizedUid' => 1,
+                'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'secondAuthor.firstname' => 'John',
-                'secondAuthor.uid' => 1,
-                'secondAuthor._localizedUid' => 1,
+                'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'tags' => [],
             ],
             [
                 'title' => 'Post 1 - not translated',
-                'uid' => 1,
-                '_localizedUid' => 1,
+                AbstractDomainObject::PROPERTY_UID => 1,
+                AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'content' => 'G - content',
                 'blog.title' => 'Blog 1',
-                'blog.uid' => 1,
-                'blog._localizedUid' => 1,
+                'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'author.firstname' => 'John',
-                'author.uid' => 1,
-                'author._localizedUid' => 1,
+                'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'secondAuthor.firstname' => 'Never translate me henry',
-                'secondAuthor.uid' => 3,
-                'secondAuthor._localizedUid' => 3,
+                'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 3,
+                'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 3,
                 'tags.0.name' => 'Tag1',
-                'tags.0.uid' => 1,
-                'tags.0._localizedUid' => 1,
+                'tags.0.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'tags.0.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'tags.1.name' => 'Tag2',
-                'tags.1.uid' => 2,
-                'tags.1._localizedUid' => 2,
+                'tags.1.' . AbstractDomainObject::PROPERTY_UID => 2,
+                'tags.1.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                 'tags.2.name' => 'Tag3',
-                'tags.2.uid' => 3,
-                'tags.2._localizedUid' => 3,
+                'tags.2.' . AbstractDomainObject::PROPERTY_UID => 3,
+                'tags.2.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 3,
             ],
         ];
         return [
@@ -534,105 +535,105 @@ class QueryLocalizedDataTest extends FunctionalTestCase
                 'expected' => [
                     [
                         'title' => 'Post 5 - DK',
-                        'uid' => 5,
-                        '_localizedUid' => 13,
+                        AbstractDomainObject::PROPERTY_UID => 5,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 13,
                         'content' => 'A - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'tags' => [],
                     ],
                     [
                         'title' => 'Post 2 - DK',
-                        'uid' => 2,
-                        '_localizedUid' => 11,
+                        AbstractDomainObject::PROPERTY_UID => 2,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 11,
                         'content' => 'C - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'tags.0.name' => 'Tag 3 DK',
-                        'tags.0.uid' => 3,
-                        'tags.0._localizedUid' => 18,
+                        'tags.0.' . AbstractDomainObject::PROPERTY_UID => 3,
+                        'tags.0.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 18,
                         'tags.1.name' => 'Tag4',
-                        'tags.1.uid' => 4,
-                        'tags.1._localizedUid' => 4,
+                        'tags.1.' . AbstractDomainObject::PROPERTY_UID => 4,
+                        'tags.1.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 4,
                         'tags.2.name' => 'Tag5',
-                        'tags.2.uid' => 5,
-                        'tags.2._localizedUid' => 5,
+                        'tags.2.' . AbstractDomainObject::PROPERTY_UID => 5,
+                        'tags.2.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 5,
                         'tags.3.name' => 'Tag 6 DK',
-                        'tags.3.uid' => 6,
-                        'tags.3._localizedUid' => 19,
+                        'tags.3.' . AbstractDomainObject::PROPERTY_UID => 6,
+                        'tags.3.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 19,
                         'tags.4.name' => 'Tag7',
-                        'tags.4.uid' => 7,
-                        'tags.4._localizedUid' => 7,
+                        'tags.4.' . AbstractDomainObject::PROPERTY_UID => 7,
+                        'tags.4.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 7,
                     ],
                     [
                         'title' => 'Post 6',
-                        'uid' => 6,
-                        '_localizedUid' => 6,
+                        AbstractDomainObject::PROPERTY_UID => 6,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 6,
                         'content' => 'F - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'tags' => [],
                     ],
                     [
                         'title' => 'Post 1 - not translated',
-                        'uid' => 1,
-                        '_localizedUid' => 1,
+                        AbstractDomainObject::PROPERTY_UID => 1,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                         'content' => 'G - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Never translate me henry',
-                        'secondAuthor.uid' => 3,
-                        'secondAuthor._localizedUid' => 3,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 3,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 3,
                         'tags.0.name' => 'Tag 1 DK',
-                        'tags.0.uid' => 1,
-                        'tags.0._localizedUid' => 16,
+                        'tags.0.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'tags.0.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 16,
                         'tags.1.name' => 'Tag 2 DK',
-                        'tags.1.uid' => 2,
-                        'tags.1._localizedUid' => 17,
+                        'tags.1.' . AbstractDomainObject::PROPERTY_UID => 2,
+                        'tags.1.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 17,
                         'tags.2.name' => 'Tag 3 DK',
-                        'tags.2.uid' => 3,
-                        'tags.2._localizedUid' => 18,
+                        'tags.2.' . AbstractDomainObject::PROPERTY_UID => 3,
+                        'tags.2.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 18,
 
                     ],
                     [
                         'title' => 'Post 3',
-                        'uid' => 3,
-                        '_localizedUid' => 3,
+                        AbstractDomainObject::PROPERTY_UID => 3,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 3,
                         'content' => 'I - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'tags' => [],
                     ],
                 ],
@@ -645,80 +646,80 @@ class QueryLocalizedDataTest extends FunctionalTestCase
                 'expected' => [
                     [
                         'title' => 'Post 5 - DK',
-                        'uid' => 5,
-                        '_localizedUid' => 13,
+                        AbstractDomainObject::PROPERTY_UID => 5,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 13,
                         'content' => 'A - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'tags' => [],
                     ],
                     [
                         'title' => 'Post 2 - DK',
-                        'uid' => 2,
-                        '_localizedUid' => 11,
+                        AbstractDomainObject::PROPERTY_UID => 2,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 11,
                         'content' => 'C - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'tags.0.name' => 'Tag 3 DK',
-                        'tags.0.uid' => 3,
-                        'tags.0._localizedUid' => 18,
+                        'tags.0.' . AbstractDomainObject::PROPERTY_UID => 3,
+                        'tags.0.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 18,
                         'tags.1.name' => 'Tag4',
-                        'tags.1.uid' => 4,
-                        'tags.1._localizedUid' => 4,
+                        'tags.1.' . AbstractDomainObject::PROPERTY_UID => 4,
+                        'tags.1.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 4,
                         'tags.2.name' => 'Tag5',
-                        'tags.2.uid' => 5,
-                        'tags.2._localizedUid' => 5,
+                        'tags.2.' . AbstractDomainObject::PROPERTY_UID => 5,
+                        'tags.2.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 5,
                         'tags.3.name' => 'Tag 6 DK',
-                        'tags.3.uid' => 6,
-                        'tags.3._localizedUid' => 19,
+                        'tags.3.' . AbstractDomainObject::PROPERTY_UID => 6,
+                        'tags.3.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 19,
                         'tags.4.name' => 'Tag7',
-                        'tags.4.uid' => 7,
-                        'tags.4._localizedUid' => 7,
+                        'tags.4.' . AbstractDomainObject::PROPERTY_UID => 7,
+                        'tags.4.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 7,
                     ],
                     [
                         'title' => 'Post 7 - DK',
-                        'uid' => 7,
-                        '_localizedUid' => 14,
+                        AbstractDomainObject::PROPERTY_UID => 7,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 14,
                         'content' => 'S - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'tags' => [],
                     ],
                     [
                         'title' => 'Post 4 - DK',
-                        'uid' => 4,
-                        '_localizedUid' => 12,
+                        AbstractDomainObject::PROPERTY_UID => 4,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 12,
                         'content' => 'U - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'tags' => [],
                     ],
                 ],
@@ -729,96 +730,96 @@ class QueryLocalizedDataTest extends FunctionalTestCase
                 'expected' => [
                     [
                         'title' => 'Post 5 - DK',
-                        'uid' => 13,
-                        '_localizedUid' => 13,
+                        AbstractDomainObject::PROPERTY_UID => 13,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 13,
                         'content' => 'A - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'tags' => [],
                     ],
                     [
                         'title' => 'Post DK only',
-                        'uid' => 15,
-                        '_localizedUid' => 15,
+                        AbstractDomainObject::PROPERTY_UID => 15,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 15,
                         'content' => 'B - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'tags' => [],
                     ],
                     [
                         'title' => 'Post 2 - DK',
-                        'uid' => 11,
-                        '_localizedUid' => 11,
+                        AbstractDomainObject::PROPERTY_UID => 11,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 11,
                         'content' => 'C - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'tags.0.name' => 'Tag 3 DK',
-                        'tags.0.uid' => 3,
-                        'tags.0._localizedUid' => 18,
+                        'tags.0.' . AbstractDomainObject::PROPERTY_UID => 3,
+                        'tags.0.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 18,
                         'tags.1.name' => 'Tag4',
-                        'tags.1.uid' => 4,
-                        'tags.1._localizedUid' => 4,
+                        'tags.1.' . AbstractDomainObject::PROPERTY_UID => 4,
+                        'tags.1.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 4,
                         'tags.2.name' => 'Tag5',
-                        'tags.2.uid' => 5,
-                        'tags.2._localizedUid' => 5,
+                        'tags.2.' . AbstractDomainObject::PROPERTY_UID => 5,
+                        'tags.2.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 5,
                         'tags.3.name' => 'Tag 6 DK',
-                        'tags.3.uid' => 6,
-                        'tags.3._localizedUid' => 19,
+                        'tags.3.' . AbstractDomainObject::PROPERTY_UID => 6,
+                        'tags.3.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 19,
                         'tags.4.name' => 'Tag7',
-                        'tags.4.uid' => 7,
-                        'tags.4._localizedUid' => 7,
+                        'tags.4.' . AbstractDomainObject::PROPERTY_UID => 7,
+                        'tags.4.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 7,
                     ],
                     [
                         'title' => 'Post 7 - DK',
-                        'uid' => 14,
-                        '_localizedUid' => 14,
+                        AbstractDomainObject::PROPERTY_UID => 14,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 14,
                         'content' => 'S - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'tags' => [],
                     ],
                     [
                         'title' => 'Post 4 - DK',
-                        'uid' => 12,
-                        '_localizedUid' => 12,
+                        AbstractDomainObject::PROPERTY_UID => 12,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 12,
                         'content' => 'U - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'tags' => [],
                     ],
                 ],
@@ -862,33 +863,33 @@ class QueryLocalizedDataTest extends FunctionalTestCase
         $lang0Expected = [
             [
                 'title' => 'Post 5',
-                'uid' => 5,
-                '_localizedUid' => 5,
+                AbstractDomainObject::PROPERTY_UID => 5,
+                AbstractDomainObject::PROPERTY_LOCALIZED_UID => 5,
                 'content' => 'Z - content',
                 'blog.title' => 'Blog 1',
-                'blog.uid' => 1,
-                'blog._localizedUid' => 1,
+                'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'author.firstname' => 'John',
-                'author.uid' => 1,
-                'author._localizedUid' => 1,
+                'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'secondAuthor.firstname' => 'John',
-                'secondAuthor.uid' => 1,
-                'secondAuthor._localizedUid' => 1,
+                'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
             ],
             [
                 'title' => 'Post 6',
-                'uid' => 6,
-                '_localizedUid' => 6,
+                AbstractDomainObject::PROPERTY_UID => 6,
+                AbstractDomainObject::PROPERTY_LOCALIZED_UID => 6,
                 'content' => 'F - content',
                 'blog.title' => 'Blog 1',
-                'blog.uid' => 1,
-                'blog._localizedUid' => 1,
+                'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'author.firstname' => 'John',
-                'author.uid' => 1,
-                'author._localizedUid' => 1,
+                'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'secondAuthor.firstname' => 'John',
-                'secondAuthor.uid' => 1,
-                'secondAuthor._localizedUid' => 1,
+                'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
                 'tags' => [],
             ],
         ];
@@ -915,33 +916,33 @@ class QueryLocalizedDataTest extends FunctionalTestCase
                 'expected' => [
                     [
                         'title' => 'Post 6',
-                        'uid' => 6,
-                        '_localizedUid' => 6,
+                        AbstractDomainObject::PROPERTY_UID => 6,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 6,
                         'content' => 'F - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                     ],
                     [
                         'title' => 'Post 5 - DK',
-                        'uid' => 5,
-                        '_localizedUid' => 13,
+                        AbstractDomainObject::PROPERTY_UID => 5,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 13,
                         'content' => 'A - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                     ],
                 ],
             ],
@@ -951,18 +952,18 @@ class QueryLocalizedDataTest extends FunctionalTestCase
                 'expected' => [
                     [
                         'title' => 'Post 5 - DK',
-                        'uid' => 5,
-                        '_localizedUid' => 13,
+                        AbstractDomainObject::PROPERTY_UID => 5,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 13,
                         'content' => 'A - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                     ],
                 ],
             ],
@@ -972,33 +973,33 @@ class QueryLocalizedDataTest extends FunctionalTestCase
                 'expected' => [
                     [
                         'title' => 'Post 5 - DK',
-                        'uid' => 13,
-                        '_localizedUid' => 13,
+                        AbstractDomainObject::PROPERTY_UID => 13,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 13,
                         'content' => 'A - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                     ],
                     [
                         'title' => 'Post DK only',
-                        'uid' => 15,
-                        '_localizedUid' => 15,
+                        AbstractDomainObject::PROPERTY_UID => 15,
+                        AbstractDomainObject::PROPERTY_LOCALIZED_UID => 15,
                         'content' => 'B - content',
                         'blog.title' => 'Blog 1 DK',
-                        'blog.uid' => 1,
-                        'blog._localizedUid' => 2,
+                        'blog.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'blog.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'author.firstname' => 'Translated John',
-                        'author.uid' => 1,
-                        'author._localizedUid' => 2,
+                        'author.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'author.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                         'secondAuthor.firstname' => 'Translated John',
-                        'secondAuthor.uid' => 1,
-                        'secondAuthor._localizedUid' => 2,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_UID => 1,
+                        'secondAuthor.' . AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                     ],
                 ],
             ],
@@ -1045,25 +1046,25 @@ class QueryLocalizedDataTest extends FunctionalTestCase
         $lang0Expected = [
              [
                  'title' => 'Blog 1',
-                 'uid' => 1,
-                 '_localizedUid' => 1,
+                 AbstractDomainObject::PROPERTY_UID => 1,
+                 AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
              ],
              [
                  'title' => 'Blog 1',
-                 'uid' => 1,
-                 '_localizedUid' => 1,
+                 AbstractDomainObject::PROPERTY_UID => 1,
+                 AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
              ],
          ];
         $mixed = [
              [
                  'title' => 'Blog 1',
-                 'uid' => 1,
-                 '_localizedUid' => 1,
+                 AbstractDomainObject::PROPERTY_UID => 1,
+                 AbstractDomainObject::PROPERTY_LOCALIZED_UID => 1,
              ],
              [
                  'title' => 'Blog 1 DK',
-                 'uid' => 2,
-                 '_localizedUid' => 2,
+                 AbstractDomainObject::PROPERTY_UID => 2,
+                 AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
              ],
          ];
         return [
@@ -1093,13 +1094,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase
                  'expected' => [
                      [
                          'title' => 'Blog 1 DK',
-                         'uid' => 1,
-                         '_localizedUid' => 2,
+                         AbstractDomainObject::PROPERTY_UID => 1,
+                         AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                      ],
                      [
                          'title' => 'Blog 1 DK',
-                         'uid' => 1,
-                         '_localizedUid' => 2,
+                         AbstractDomainObject::PROPERTY_UID => 1,
+                         AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                      ],
                  ],
              ],
@@ -1109,13 +1110,13 @@ class QueryLocalizedDataTest extends FunctionalTestCase
                  'expected' => [
                      [
                          'title' => 'Blog 1 DK',
-                         'uid' => 1,
-                         '_localizedUid' => 2,
+                         AbstractDomainObject::PROPERTY_UID => 1,
+                         AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                      ],
                      [
                          'title' => 'Blog 1 DK',
-                         'uid' => 1,
-                         '_localizedUid' => 2,
+                         AbstractDomainObject::PROPERTY_UID => 1,
+                         AbstractDomainObject::PROPERTY_LOCALIZED_UID => 2,
                      ],
                  ],
              ],
diff --git a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchemaTest.php b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchemaTest.php
index 02bee9943756..ecdcacb512ea 100644
--- a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchemaTest.php
+++ b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchemaTest.php
@@ -18,6 +18,7 @@ declare(strict_types=1);
 namespace TYPO3\CMS\Extbase\Tests\Unit\Reflection;
 
 use TYPO3\CMS\Core\Cache\Frontend\NullFrontend;
+use TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject;
 use TYPO3\CMS\Extbase\Reflection\ClassSchema;
 use TYPO3\CMS\Extbase\Reflection\ReflectionService;
 use TYPO3\CMS\Extbase\Tests\Unit\Reflection\Fixture\DummyClassWithAllTypesOfMethods;
@@ -82,11 +83,11 @@ class ClassSchemaTest extends UnitTestCase
                 'propertyWithCascadeAnnotationWithoutVarAnnotation',
                 'propertyWithObjectStorageAnnotation',
                 'propertyWithObjectStorageAnnotationWithoutFQCN',
-                'uid',
-                '_localizedUid',
-                '_languageUid',
-                '_versionedUid',
-                'pid',
+                AbstractDomainObject::PROPERTY_UID,
+                AbstractDomainObject::PROPERTY_LOCALIZED_UID,
+                AbstractDomainObject::PROPERTY_LANGUAGE_UID,
+                AbstractDomainObject::PROPERTY_VERSIONED_UID,
+                AbstractDomainObject::PROPERTY_PID,
             ],
             array_keys((new ClassSchema(DummyClassWithAllTypesOfProperties::class))->getProperties())
         );
-- 
GitLab