title: FOS/UserBundle: Unrecognized field: usernameCanonical
body: <p>I'm very new to Symfony 2.0 and FOS/UserBundle. I'm install it to my project and when I trying to login or register new user I get following errors:</p>
  
  <blockquote>
    <p>Unrecognized field: usernameCanonical</p>
  </blockquote>
  
  <p>I haven't no idea what does it mean? I'm put my codes:</p>
  
  <p>app/config/security.yml file</p>
  
  <pre><code>security:
      providers:
          fos_userbundle:
              id: fos_user.user_manager
  
      firewalls:
          main:
              pattern: .*
              form-login:
                  provider: fos_userbundle
                  login_path: /login
                  use_forward: false
                  check_path: /login_check
                  failure_path: /not_found
              logout: true
              anonymous: true
  
      access_control:
          # The WDT has to be allowed to anonymous users to avoid requiring the login with the AJAX request
          - { path: ^/_wdt/, role: IS_AUTHENTICATED_ANONYMOUSLY }
          - { path: ^/_profiler/, role: IS_AUTHENTICATED_ANONYMOUSLY }
          # AsseticBundle paths used when using the controller for assets
          - { path: ^/js/, role: IS_AUTHENTICATED_ANONYMOUSLY }
          - { path: ^/css/, role: IS_AUTHENTICATED_ANONYMOUSLY }
          # URL of FOSUserBundle which need to be available to anonymous users
          - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
          - { path: ^/login_check$, role: IS_AUTHENTICATED_ANONYMOUSLY } # for the case of a failed login
          - { path: ^/user/new$, role: IS_AUTHENTICATED_ANONYMOUSLY }
          - { path: ^/user/check-confirmation-email$, role: IS_AUTHENTICATED_ANONYMOUSLY }
          - { path: ^/user/confirm/, role: IS_AUTHENTICATED_ANONYMOUSLY }
          - { path: ^/user/confirmed$, role: IS_AUTHENTICATED_ANONYMOUSLY }
          - { path: ^/user/request-reset-password$, role: IS_AUTHENTICATED_ANONYMOUSLY }
          - { path: ^/user/send-resetting-email$, role: IS_AUTHENTICATED_ANONYMOUSLY }
          - { path: ^/user/check-resetting-email$, role: IS_AUTHENTICATED_ANONYMOUSLY }
          - { path: ^/user/reset-password/, role: IS_AUTHENTICATED_ANONYMOUSLY }
          # Secured part of the site
          # This config requires being logged for the whole site and having the admin role for the admin part.
          # Change these rules to adapt them to your needs
          - { path: ^/admin/, role: ROLE_ADMIN }
          - { path: ^/.*, role: ROLE_USER }
  
      role_hierarchy:
          ROLE_ADMIN:       ROLE_USER
          ROLE_SUPERADMIN:  ROLE_ADMIN
  </code></pre>
  
  <p>User entity located in SecurityBundle:</p>
  
  <pre><code>&lt;?php
  
  namespace App\SecurityBundle\Entity;
  
  use FOS\UserBundle\Entity\User as BaseUser;
  
  /**
   * App\SecurityBundle\Entity\User
   *
   * @orm:Table(name="fos_user")
   * @orm:Entity
   */
  class User extends BaseUser
  {
      /**
       * @var integer $id
       *
       * @orm:Column(name="id", type="integer")
       * @orm:Id
       * @orm:GeneratedValue(strategy="AUTO")
       */
      protected $id;
  
      /**
       * @orm:Column(type="string", name="username", length="70")
       */
      protected $username;    
  
      /**
       * @orm:Column(type="string", name="password", length="70")
       */
      protected $password;    
  
      /**
       * @orm:Column(type="string", name="email", length="70")
       */
      protected $email;
  
      public function __construct()
      {
          parent::__construct();
      }
  }
  </code></pre>
  
  <p>Please help me?</p>
  
  <p><strong>EDITED:</strong> When I trying to register new user I get below errors:</p>
  
  <pre><code>The "App\SecurityBundle\Entity\User" class metadata does not have any "usernameCanonical" field or association mapping.
  </code></pre>
  
  <p>Added my config.yml:</p>
  
  <pre><code>imports:
      - { resource: parameters.ini }
      - { resource: security.yml }
  
  framework:
      secret:        %secret%
      charset:       UTF-8
      error_handler: null
      csrf_protection:
          enabled: true
      router:        { resource: "%kernel.root_dir%/config/routing.yml" }
      validation:    { enabled: true, annotations: true }
      templating:    { engines: ['twig'] } #assets_version: SomeVersionScheme
      session:
          default_locale: %locale%
          lifetime:       3600
          auto_start:     true
  
  # Twig Configuration
  twig:
      debug:            %kernel.debug%
      strict_variables: %kernel.debug%
  
  # Assetic Configuration
  assetic:
      debug:          %kernel.debug%
      use_controller: false
      filters:
          cssrewrite: ~
          # closure:
          #     jar: %kernel.root_dir%/java/compiler.jar
          # yui_css:
          #     jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar
  
  fos_user:
      db_driver: orm
      firewall_name: main
      class:
          model:
              user: App\SecurityBundle\Entity\User
  
  # Doctrine Configuration
  doctrine:
      dbal:
          driver:   %database_driver%
          host:     %database_host%
          dbname:   %database_name%
          user:     %database_user%
          password: %database_password%
      orm:
          auto_generate_proxy_classes: %kernel.debug%
          default_entity_manager: default
          entity_managers:
              default:
                  mappings:
                      FOSUserBundle: ~
                      AppSecurityBundle: { type: annotation, dir: Entity/ }
  
  # Swiftmailer Configuration
  swiftmailer:
      transport: %mailer_transport%
      host:      %mailer_host%
      username:  %mailer_user%
      password:  %mailer_password%
  
  jms_security_extra:
      secure_controllers:  true
      secure_all_services: false
  </code></pre>