diff --git a/src/Entity/Traits/IdentityBigIntTrait.php b/src/Entity/Traits/IdentityBigIntTrait.php
new file mode 100644
index 0000000..a5cefab
--- /dev/null
+++ b/src/Entity/Traits/IdentityBigIntTrait.php
@@ -0,0 +1,50 @@
+<?php
+
+declare(strict_types=1);
+
+namespace AnzuSystems\Contracts\Entity\Traits;
+
+use AnzuSystems\SerializerBundle\Attributes\Serialize;
+use AnzuSystems\Contracts\Entity\Interfaces\BaseIdentifiableInterface;
+use Doctrine\DBAL\Types\Types;
+use Doctrine\ORM\Mapping as ORM;
+
+trait IdentityBigIntTrait
+{
+    use NamedResourceTrait;
+
+    /**
+     * Primary key of this item.
+     */
+    #[ORM\Id]
+    #[ORM\GeneratedValue(strategy: 'AUTO')]
+    #[ORM\Column(type: Types::BIGINT, options: ['unsigned' => true])]
+    #[Serialize]
+    protected ?int $id = null;
+
+    public function getId(): ?int
+    {
+        return $this->id;
+    }
+
+    public function setId(?int $id): static
+    {
+        $this->id = $id;
+
+        return $this;
+    }
+
+    public function is(BaseIdentifiableInterface $identifiable): bool
+    {
+        if ($identifiable::getResourceName() === $this->getResourceName()) {
+            return $identifiable->getId() === $this->getId();
+        }
+
+        return false;
+    }
+
+    public function isNot(BaseIdentifiableInterface $identifiable): bool
+    {
+        return false === $this->is($identifiable);
+    }
+}