31.13.4. User Type Mappings

User type mappings allow one to map from JDBC column types to custom CMP fields types by specifying an instance of org.jboss.ejb.plugins.cmp.jdbc.Mapper interface, the definition of which is shown below.
public interface Mapper
{
    /**
     * This method is called when CMP field is stored.
     * @param fieldValue - CMP field value
     * @return column value.
     */
    Object toColumnValue(Object fieldValue);    

    /** 
     * This method is called when CMP field is loaded.
     * @param columnValue - loaded column value.
     * @return CMP field value.
     */
    Object toFieldValue(Object columnValue);
}
A prototypical use case is the mapping of an integer type to its type-safe Java enumeration instance. The content model of the user-type-mappings element consists of one or more user-type-mapping elements, the content model of which is shown in Figure 31.20, “The user-type-mapping content model >”.
The user-type-mapping content model >

Figure 31.20. The user-type-mapping content model >

  • java-type: the fully qualified name of the CMP field type in the mapping.
  • mapped-type: the fully qualified name of the database type in the mapping.
  • mapper: the fully qualified name of the Mapper interface implementation that handles the conversion between the java-type and mapped-type.