Hint: custom persisted property is declared in .xml file outside of table just like transient property.You can not have a persistent property outside <table>. If you do that your repository definition xml validation will fail during startup.
As as read atg.adapter.gsa.GSAPropertyDescriptor class will be use to create custom persisted properties. Then what is difference b/w custom persisted property, >that we creating using property-type = sub class of above class and simple property that is in any table?Any regular persistent property in your repository is going to be handled through GSAPropertyDescriptor or its sub-class. In case you specify property-type as a sub-class of GSAPropertyDescriptor, then in that case some additional methods like rawToReal() and realToRaw() come into picture while calling getPropertyValue() and setPropertyValue() respectively.
Where can we use this methodYou have to use it in your PropertyDescriptor implementation class within a static block. Here typeName would be same as the name of user defined property and propertyDescriptorClass will be the Class object for your PropertyDescriptor implementation class.
RepositoryPropertyDescriptor.registerPropertyDescriptorClass(String typeName, Class propertyDescriptorClass)