diff --git a/src/Graviton/SchemaBundle/SchemaUtils.php b/src/Graviton/SchemaBundle/SchemaUtils.php
index <HASH>..<HASH> 100644
--- a/src/Graviton/SchemaBundle/SchemaUtils.php
+++ b/src/Graviton/SchemaBundle/SchemaUtils.php
@@ -141,7 +141,9 @@ class SchemaUtils
             $property->setDescription($model->getDescriptionOfField($field));
 
             $property->setType($meta->getTypeOfField($field));
-            $property->setReadOnly($model->getReadOnlyOfField($field));
+            $property->setReadOnly(
+                $model->getReadOnlyOfField($field) || ($meta->isIdentifier($field) && !$meta->isIdGeneratorNone())
+            );
 
             if ($meta->getTypeOfField($field) === 'many') {
                 $propertyModel = $model->manyPropertyModelForTarget($meta->getAssociationTargetClass($field));
tests with auto setting readOnly for ids