diff --git a/lib/private/Authentication/Token/PublicKeyToken.php b/lib/private/Authentication/Token/PublicKeyToken.php index 469acdcfef8..cf3a8b16141 100644 --- a/lib/private/Authentication/Token/PublicKeyToken.php +++ b/lib/private/Authentication/Token/PublicKeyToken.php @@ -102,7 +102,8 @@ class PublicKeyToken extends Entity implements INamedToken, IWipeableToken { } public function getId(): int { - return (int)$this->id; + assert(!is_string($this->id) && $this->id !== null); + return $this->id; } public function getUID(): string { diff --git a/lib/public/AppFramework/Db/QBMapper.php b/lib/public/AppFramework/Db/QBMapper.php index 2d31a62798c..cf6aee73047 100644 --- a/lib/public/AppFramework/Db/QBMapper.php +++ b/lib/public/AppFramework/Db/QBMapper.php @@ -108,6 +108,9 @@ abstract class QBMapper { $getter = 'get' . ucfirst($property); $value = $entity->$getter(); + if ($property === 'id' && $entity->id === null) { + continue; + } $type = $this->getParameterTypeForProperty($entity, $property); $qb->setValue($column, $qb->createNamedParameter($value, $type)); } @@ -116,7 +119,7 @@ abstract class QBMapper { /** @psalm-suppress DocblockTypeContradiction */ $entity->generateId(); $qb->executeStatement(); - } elseif ($entity->getId() === null) { + } elseif ($entity->id === null) { $qb->executeStatement(); // When autoincrement is used id is always an int $entity->setId($qb->getLastInsertId());