IdentityExtended.hbm.xml is missing a named or numeric column mapping for attribute employeeType with number extended11

Hi Team,
I am getting below error :
IdentityExtended.hbm.xml is missing a named or numeric column mapping for attribute employeeType with number extended11.

Hi @amanKsingh,

it means that you have employeeType like searchable with extended11 but you dont have declarated in your IdentityExtended.hbm.xml file, for example:

<property name="extended11" type="string" length="450"/>

1 Like

By default, you will get 10 searchable attribute. if you want more than 10 searchable attribute, you need to Uncomment the extended attribute 11 in IdentityExtended.hbm.xml

1 Like

Hi @enistri_devo, I am adding this extended attribute but not working.

@Arun-Kumar,
I am adding this extended attribute but not working.

After making changes, server need to restart.
Restart the server and check.

@Arun-Kumar, not working after restart the server.

Could you please share the IdentityExtended.hbm.xml file?

Hi @amanKsingh ,

Just to give some context and you can check accordingly and get it resolved.

By default, when we install SailPoint, we will get 6 attributes that are searchable and indexed. Because those will be stored in a separate column of the spt_identity table. Bsides this, by default SailPoint will give and we will map 10 extended attributes. Which means we can create 10 extended searchable attributes, which will be stored in extended1, extended2, extended3,… extended10 in the sequence (make sure those are searchable, so that it will store in separate columns to index). If those attributes, whatever you are going to create, are not searchable, then those will be stored in the attributes column as CLOB (Charector lorge object).

If you want to create more than 10 attributes untill 20, we can add by using <property name="extended11" type="string" length="450"/> and <property name="extended12" type="string" length="450"/>, etc. in the identity extended hbm file. Make sure those types are strings only.

If you want to create more than 20 attributes also, we can do with the <property name="nameOfAttribute" type="string" length="450" access="sailpoint.persistence.ExtendedPropertyAccessor"/>. But be careful while adding because if you added these entries without completing the first 10 extended attributes (columns will be created but data won’t add to those columns. Data will be stored in sequence extended attributes), then it will store under extended1 or extended2, etc. according to whatever is available in the sequence. So, it is good practice and recommend that use ExtendedPropertyAccessor entered after the first 10 extended schema attributes are completed only.

You can add how many attributes you want. There is no limit. But it has a negative impact on the performance when we have more searchable attributes. So, use them wisely for whatever is required. Don’t use searchable for all until it is required.

4 Likes
<!-- (c) Copyright 2008 SailPoint Technologies, Inc., All Rights Reserved. -->

<!--
Extended attribute mappings for Identity.

By default we will map 10 extended attributes, but this may be raised to
a maximum of 20.  Using ExtendedPropertyAccessor can add attributes beyond 
the limit of 20 and have meaningful names.  Example of ExtendedPropertyAccessor 
is shown below.

Only the first five attributes are indexed, to provide
an example of how to specify an index.  In a production deployment you
will usually index most of the extended attributes since they are
usually added for searching, but index maintenance slows down updates to
the identity cube so add them only if necessary.

All extended properties must be of type="string".

We need the extended attributes to be large enough to hold arbitrary
customer data but not so large that Hibernate turns them into a blob or
other type which cannot be used in searches.

The maximum size of a VARCHAR on various sysems is:

    Oracle - 4000
    SQLServer - 8000
    MySQL 5 - 65K
    DB2 8.1 - 32K

With each dialect, Hibernate will use a non-indexable type for strings
of a certain size length.  This size cliff is often less than the max size
for varchar on that system, so be careful if extending the sizes of these
fields beyond what is specified in this file.

SQL Server will not index a value greater than 900 "bytes".
Now that we're using NVARCHAR on SQL Server there are two bytes per
characcter so the maximum size of an indexed string column is 450.
If you know you are not running on SQL Server, or you know you will
not need an index on the column,  you may raise the size safely.

MySQL will only index 767 "bytes" by default for InnoDB tables.
Using varchar with UTF-8, this equates to at most 255 characters.
MySQL will allow indexing a subset of the column length,
so generated ddl will have mysql indexes substringed to 255 by default.

-->

    <property name="extended1" type="string" length="450"
              index="spt_identity_extended1_ci"/>
    <property name="extended2" type="string" length="450"
              index="spt_identity_extended2_ci"/>
    <property name="extended3" type="string" length="450"
              index="spt_identity_extended3_ci"/>
    <property name="extended4" type="string" length="450"
              index="spt_identity_extended4_ci"/>
    <property name="extended5" type="string" length="450"
              index="spt_identity_extended5_ci"/>

    <property name="extended6" type="string" length="450"/>
    <property name="extended7" type="string" length="450"/>
    <property name="extended8" type="string" length="450"/>
    <property name="extended9" type="string" length="450"/>
    <property name="extended10" type="string" length="450"/>
  
    <!-- An example of using ExtendedPropertyAccessor to add
         attributes beyond the limit of 20 numbered 
         SailPointObject properties and have meaningful names.

    <property name="costCenter" type="string" length="450"
              access="sailpoint.persistence.ExtendedPropertyAccessor"/>
    -->

  
    <property name="extended11" type="string" length="450"/>
    
      <!-- <property name="extended12" type="string" length="450"/>
    <property name="extended13" type="string" length="450"/>
    <property name="extended14" type="string" length="450"/>
    <property name="extended15" type="string" length="450"/>
    <property name="extended16" type="string" length="450"/>
    <property name="extended17" type="string" length="450"/>
    <property name="extended18" type="string" length="450"/>
    <property name="extended19" type="string" length="450"/>
    <property name="extended20" type="string" length="450"/>
    -->

    <many-to-one embed-xml="false" name="extendedIdentity1" class="sailpoint.object.Identity"/>
    <many-to-one embed-xml="false" name="extendedIdentity2" class="sailpoint.object.Identity"/>
    <many-to-one embed-xml="false" name="extendedIdentity3" class="sailpoint.object.Identity"/>
    <many-to-one embed-xml="false" name="extendedIdentity4" class="sailpoint.object.Identity"/>
    <many-to-one embed-xml="false" name="extendedIdentity5" class="sailpoint.object.Identity"/>
    

Run the iiq schema command to create the scripts

Go to identityiq_home\WEB-INF\bin location and run the iiq schema which will generate tha database script
cd identityiq_home\WEB-INF\bin
iiq schema

Create Database Script located in identityiq_home\WEB-INF\database
With help of database Script, update the database table.

1 Like

Hi im having the same issue i ran iiq schema but in sailpoit it still says "
IdentityExtended.hbm.xml is missing a named or numeric column mapping for attribute" @Arun-Kumar

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.