private function insert(User $aUser)
    {
        $sql = 'INSERT INTO user (
            id,
            confirmation_token_token,
            confirmation_token_created_on,
            created_on,
            email,
            invitation_token_token,
            invitation_token_created_on,
            last_login,
            password,
            salt,
            remember_password_token_token,
            remember_password_token_created_on,
            roles,
            updated_on
        ) VALUES (
            :id,
            :confirmationTokenToken,
            :confirmationTokenCreatedOn,
            :createdOn,
            :email,
            :invitationTokenToken,
            :invitationTokenCreatedOn,
            :lastLogin,
            :password,
            :salt,
            :rememberPasswordTokenToken,
            :rememberPasswordTokenCreatedOn,
            :roles,
            :updatedOn
        )';
        $this->execute($sql, [
            'id'                             => $aUser->id()->id(),
            'confirmationTokenToken'         => $aUser->confirmationToken() ? $aUser->confirmationToken()->token() : null,
            'confirmationTokenCreatedOn'     => $aUser->confirmationToken() ? $aUser->confirmationToken()->createdOn() : null,
            'createdOn'                      => $aUser->createdOn()->format(self::DATE_FORMAT),
            'email'                          => $aUser->email()->email(),
            'invitationTokenToken'           => $aUser->invitationToken() ? $aUser->invitationToken()->token() : null,
            'invitationTokenCreatedOn'       => $aUser->invitationToken() ? $aUser->invitationToken()->createdOn() : null,
            'lastLogin'                      => $aUser->lastLogin() ? $aUser->lastLogin()->format(self::DATE_FORMAT) : null,
            'password'                       => $aUser->password()->encodedPassword(),
            'salt'                           => $aUser->password()->salt(),
            'rememberPasswordTokenToken'     => $aUser->rememberPasswordToken() ? $aUser->rememberPasswordToken()->token() : null,
            'rememberPasswordTokenCreatedOn' => $aUser->rememberPasswordToken() ? $aUser->rememberPasswordToken()->createdOn() : null,
            'roles'                          => $this->rolesToString($aUser->roles()),
            'updatedOn'                      => $aUser->updatedOn()->format(self::DATE_FORMAT),
        ]);
    }