diff --git a/content_entity_example/src/Entity/Contact.php b/content_entity_example/src/Entity/Contact.php
index a5d31ec..d456576 100644
--- a/content_entity_example/src/Entity/Contact.php
+++ b/content_entity_example/src/Entity/Contact.php
@@ -218,10 +218,11 @@ class Contact extends ContentEntityBase implements ContactInterface {
       ->setLabel(t('Name'))
       ->setDescription(t('The name of the Contact entity.'))
       ->setSettings(array(
-        'default_value' => '',
         'max_length' => 255,
         'text_processing' => 0,
       ))
+      // Set no default value.
+      ->setDefaultValue(NULL)
       ->setDisplayOptions('view', array(
         'label' => 'above',
         'type' => 'string',
@@ -238,10 +239,11 @@ class Contact extends ContentEntityBase implements ContactInterface {
       ->setLabel(t('First Name'))
       ->setDescription(t('The first name of the Contact entity.'))
       ->setSettings(array(
-        'default_value' => '',
         'max_length' => 255,
         'text_processing' => 0,
       ))
+      // Set no default value.
+      ->setDefaultValue(NULL)
       ->setDisplayOptions('view', array(
         'label' => 'above',
         'type' => 'string',
@@ -306,6 +308,31 @@ class Contact extends ContentEntityBase implements ContactInterface {
       ->setDisplayConfigurable('form', TRUE)
       ->setDisplayConfigurable('view', TRUE);
 
+    // Role field for the contact.
+    // The values shown in options are 'administrator' and 'user'.
+    $fields['role'] = BaseFieldDefinition::create('list_string')
+      ->setLabel(t('Role'))
+      ->setDescription(t('The role of the Contact entity.'))
+      ->setSettings(array(
+        'allowed_values' => array(
+          'administrator' => 'administrator',
+          'user' => 'user',
+        ),
+      ))
+      // Set the default value of this field to 'user'.
+      ->setDefaultValue('user')
+      ->setDisplayOptions('view', array(
+        'label' => 'above',
+        'type' => 'string',
+        'weight' => -2,
+      ))
+      ->setDisplayOptions('form', array(
+        'type' => 'options_select',
+        'weight' => -2,
+      ))
+      ->setDisplayConfigurable('form', TRUE)
+      ->setDisplayConfigurable('view', TRUE);
+
     $fields['langcode'] = BaseFieldDefinition::create('language')
       ->setLabel(t('Language code'))
       ->setDescription(t('The language code of ContentEntityExample entity.'));
diff --git a/content_entity_example/src/Entity/Controller/ContactListBuilder.php b/content_entity_example/src/Entity/Controller/ContactListBuilder.php
index 7d37fc9..2f6ffae 100644
--- a/content_entity_example/src/Entity/Controller/ContactListBuilder.php
+++ b/content_entity_example/src/Entity/Controller/ContactListBuilder.php
@@ -23,7 +23,6 @@ class ContactListBuilder extends EntityListBuilder {
    */
   protected $urlGenerator;
 
-
   /**
    * {@inheritdoc}
    */
@@ -50,7 +49,6 @@ class ContactListBuilder extends EntityListBuilder {
     $this->urlGenerator = $url_generator;
   }
 
-
   /**
    * {@inheritdoc}
    *
@@ -81,6 +79,7 @@ class ContactListBuilder extends EntityListBuilder {
     $header['name'] = $this->t('Name');
     $header['first_name'] = $this->t('First Name');
     $header['gender'] = $this->t('Gender');
+    $header['role'] = $this->t('Role');
     return $header + parent::buildHeader();
   }
 
@@ -93,6 +92,7 @@ class ContactListBuilder extends EntityListBuilder {
     $row['name'] = $entity->link();
     $row['first_name'] = $entity->first_name->value;
     $row['gender'] = $entity->gender->value;
+    $row['role'] = $entity->role->value;
     return $row + parent::buildRow($entity);
   }
 
diff --git a/content_entity_example/tests/src/Functional/ContentEntityExampleTest.php b/content_entity_example/tests/src/Functional/ContentEntityExampleTest.php
index c72aa64..f76fcc1 100644
--- a/content_entity_example/tests/src/Functional/ContentEntityExampleTest.php
+++ b/content_entity_example/tests/src/Functional/ContentEntityExampleTest.php
@@ -54,6 +54,7 @@ class ContentEntityExampleTest extends ExamplesBrowserTestBase {
     $assert->fieldValueEquals('name[0][value]', '');
     $assert->fieldValueEquals('name[0][value]', '');
     $assert->fieldValueEquals('name[0][value]', '');
+    $assert->fieldValueEquals('name[0][value]', '');
 
     $user_ref = $web_user->name->value . ' (' . $web_user->id() . ')';
     $assert->fieldValueEquals('user_id[0][target_id]', $user_ref);
@@ -63,6 +64,7 @@ class ContentEntityExampleTest extends ExamplesBrowserTestBase {
       'name[0][value]' => 'test name',
       'first_name[0][value]' => 'test first name',
       'gender' => 'male',
+      'role' => 'administrator',
     );
     $this->drupalPostForm(NULL, $edit, t('Save'));
 
@@ -75,6 +77,7 @@ class ContentEntityExampleTest extends ExamplesBrowserTestBase {
     // Entity shown.
     $assert->pageTextContains('test name');
     $assert->pageTextContains('test first name');
+    $assert->pageTextContains('administrator');
     $assert->pageTextContains('male');
     $assert->linkExists('Add Contact');
     $assert->linkExists('Edit');
@@ -113,6 +116,7 @@ class ContentEntityExampleTest extends ExamplesBrowserTestBase {
         'name' => 'somename',
         'first_name' => 'Joe',
         'gender' => 'female',
+        'role' => 'administrator',
       )
     );
     $contact->save();
