<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jbosscmp-jdbc>

<!-- ===================================================================== -->
<!--                                                                       -->
<!--  Standard JBossCMP-JDBC Configuration                                 -->
<!--                                                                       -->
<!-- ===================================================================== -->

<!-- $Id: standardjbosscmp-jdbc.xml,v 1.23.2.5 2002/05/21 14:51:41 starksm Exp $ -->

<jbosscmp-jdbc>
   
   <defaults>
      <datasource>java:/DefaultDS</datasource>
      <datasource-mapping>Hypersonic SQL</datasource-mapping>
      
      <create-table>true</create-table>
      <remove-table>false</remove-table>
      <read-only>false</read-only>
      <time-out>300</time-out>
      <pk-constraint>true</pk-constraint>
      <fk-constraint>false</fk-constraint>
      <row-locking>false</row-locking>
      <preferred-relation-mapping>foreign-key</preferred-relation-mapping>
      <read-ahead>
      <strategy>on-load</strategy>
      <page-size>1000</page-size>
      <eager-load-group>*</eager-load-group>
      </read-ahead>
      <list-cache-max>1000</list-cache-max>
   </defaults>
   
   <type-mappings>
      <type-mapping>
         <name>InterBase</name>
         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>32</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>BIT</jdbc-type>
            <sql-type>SMALLINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>TINYINT</jdbc-type>
            <sql-type>SMALLINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>SMALLINT</jdbc-type>
            <sql-type>SMALLINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>INTEGER</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>BIGINT</jdbc-type>
            <sql-type>NUMERIC(18,0)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>REAL</jdbc-type>
            <sql-type>FLOAT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>DOUBLE PRECISION</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>VARCHAR(64)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Time</java-type>
            <jdbc-type>TIME</jdbc-type>
            <sql-type>TIME</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Timestamp</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>TIMESTAMP</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>JAVA_OBJECT</jdbc-type>
            <sql-type>VARCHAR(2000)</sql-type>
         </mapping>
      </type-mapping>

      <type-mapping>
         <name>DB2</name>
         <row-locking-template/>
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>32</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>BIT</jdbc-type>
            <sql-type>SMALLINT</sql-type>
         </mapping>
    <!--  DB2 does not appear to support columns of type "byte"
    Regrettably, this means they'll be serialized.
         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR(1) FOR BIT DATA</sql-type>
         </mapping>
    -->
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>SMALLINT</jdbc-type>
            <sql-type>SMALLINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>INTEGER</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>BIGINT</jdbc-type>
            <sql-type>BIGINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>REAL</jdbc-type>
            <sql-type>REAL</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>DOUBLE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>VARCHAR(254)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Time</java-type>
            <jdbc-type>TIME</jdbc-type>
            <sql-type>TIME</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Timestamp</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>TIMESTAMP</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>JAVA_OBJECT</jdbc-type>
            <sql-type>BLOB(2000)</sql-type>
         </mapping>
      </type-mapping>

      <type-mapping>
         <name>Oracle9i</name>
         <!--
         | Make sure that you have the Oracle 9i version of classes12.jar
         | or you will suffer 
         -->
         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>30</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <function-mapping>
            <function-name>concat</function-name>
            <function-sql>(?1 || ?2)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>substring</function-name>
            <function-sql>substr(?1, ?2, ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>lcase</function-name>
            <function-sql>lower(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>length</function-name>
            <function-sql>len(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>locate</function-name>
            <function-sql>instr(?1, ?2, ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>abs</function-name>
            <function-sql>abs(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>sqrt</function-name>
            <function-sql>sqrt(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>ucase</function-name>
            <function-sql>upper(?1)</function-sql>
         </function-mapping>    

         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>BIT</jdbc-type>
            <sql-type>NUMBER(1)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>SMALLINT</jdbc-type>
            <sql-type>NUMBER(3)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>NUMERIC</jdbc-type>
            <sql-type>NUMBER(5)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>NUMBER(10)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>BIGINT</jdbc-type>
            <sql-type>NUMBER(19)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>REAL</jdbc-type>
            <sql-type>NUMBER(38,7)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.math.BigDecimal</java-type>
            <jdbc-type>DECIMAL</jdbc-type>
            <sql-type>NUMBER(38,15)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>NUMBER(38,15)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>VARCHAR2(255)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.util.Date</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>TIMESTAMP(3)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Time</java-type>
            <jdbc-type>TIME</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Timestamp</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>TIMESTAMP(9)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>JAVA_OBJECT</jdbc-type>
            <sql-type>BLOB</sql-type>
            <!--
            | Change this from BLOB to RAW(255) if you know your
            | serialized object will be <= 255 bytes
            -->
         </mapping>
      </type-mapping>

      <type-mapping>
         <name>Oracle8</name>
         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>30</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <function-mapping>
            <function-name>concat</function-name>
            <function-sql>(?1 || ?2)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>substring</function-name>
            <function-sql>substr(?1, ?2, ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>lcase</function-name>
            <function-sql>lower(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>length</function-name>
            <function-sql>len(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>locate</function-name>
            <function-sql>instr(?1, ?2, ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>abs</function-name>
            <function-sql>abs(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>sqrt</function-name>
            <function-sql>sqrt(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>ucase</function-name>
            <function-sql>upper(?1)</function-sql>
         </function-mapping>    

         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>BIT</jdbc-type>
            <sql-type>NUMBER(1)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>NUMERIC</jdbc-type>
            <sql-type>NUMBER(3)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>NUMERIC</jdbc-type>
            <sql-type>NUMBER(5)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>NUMBER(10)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>BIGINT</jdbc-type>
            <sql-type>NUMBER(19)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>REAL</jdbc-type>
            <sql-type>NUMBER(38,7)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.math.BigDecimal</java-type>
            <jdbc-type>DECIMAL</jdbc-type>
            <sql-type>NUMBER(38,15)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>NUMBER(38,15)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>VARCHAR2(255)</sql-type>
         </mapping>
         <mapping>
            <!--
            | Note that you lose granularity here
            | Use a numeric type and store milliseconds if you really need it
            -->
            <java-type>java.util.Date</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Time</java-type>
            <jdbc-type>TIME</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Timestamp</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>JAVA_OBJECT</jdbc-type>
            <sql-type>BLOB</sql-type>
            <!--
            | Change this from BLOB to RAW(255) if you know your
            | serialized object will be <= 255 bytes
            -->
         </mapping>
      </type-mapping>

      <type-mapping>
         <name>Oracle7</name>
         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>30</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <function-mapping>
            <function-name>concat</function-name>
            <function-sql>(?1 || ?2)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>substring</function-name>
            <function-sql>substr(?1, ?2, ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>lcase</function-name>
            <function-sql>lower(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>length</function-name>
            <function-sql>len(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>locate</function-name>
            <function-sql>instr(?1, ?2, ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>abs</function-name>
            <function-sql>abs(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>sqrt</function-name>
            <function-sql>sqrt(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>ucase</function-name>
            <function-sql>upper(?1)</function-sql>
         </function-mapping>    

         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>BIT</jdbc-type>
            <sql-type>NUMBER(1)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>NUMERIC</jdbc-type>
            <sql-type>NUMBER(3)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>NUMERIC</jdbc-type>
            <sql-type>NUMBER(5)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>NUMBER(10)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>BIGINT</jdbc-type>
            <sql-type>NUMBER(19)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>REAL</jdbc-type>
            <sql-type>NUMBER(38,7)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>NUMBER(38,15)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>VARCHAR2(255)</sql-type>
         </mapping>
         <mapping>
            <!--
            | Note that you lose granularity here
            | Use a numeric type and store milliseconds if you really need it
            -->
            <java-type>java.util.Date</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Time</java-type>
            <jdbc-type>TIME</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Timestamp</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>JAVA_OBJECT</jdbc-type>
            <sql-type>LONG RAW</sql-type>
            <!--
            | Change this from LONG RAW to RAW(255) if you know your
            | serialized object will be <= 255 bytes
            -->
         </mapping>
      </type-mapping>

      <type-mapping>
         <name>Sybase</name>
         <row-locking-template/>
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>32</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>BIT</jdbc-type>
            <sql-type>BIT</sql-type>
         </mapping>
    <!-- Current Sybase JDBC drivers (jConnect 5.2) don't support
    byte or short.  Unfortunately they'll be serialized.
         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>TINYINT</jdbc-type>
            <sql-type>TINYINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>SMALLINT</jdbc-type>
            <sql-type>SMALLINT</sql-type>
         </mapping>
    -->
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>INTEGER</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>NUMERIC</jdbc-type>
            <sql-type>NUMERIC(38,0)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>REAL</jdbc-type>
            <sql-type>REAL</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>DOUBLE PRECISION</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>VARCHAR(255)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATETIME</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Time</java-type>
            <jdbc-type>TIME</jdbc-type>
            <sql-type>SMALLDATETIME</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Timestamp</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>DATETIME</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>JAVA_OBJECT</jdbc-type>
            <sql-type>IMAGE</sql-type>
         </mapping>
      </type-mapping>

      <type-mapping>
         <name>PostgreSQL</name>
         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>32</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <function-mapping>
            <function-name>concat</function-name>
            <function-sql>(?1 || ?2)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>substring</function-name>
            <function-sql>substring(?1 FROM ?2 FOR ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>lcase</function-name>
            <function-sql>lower(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>length</function-name>
            <function-sql>length(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>locate</function-name>
            <function-sql>(coalesce(nullif(position(?1 in substring(?2 from ?3)), 0) + ?3 -1, 0))  </function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>abs</function-name>
            <function-sql>abs(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>sqrt</function-name>
            <function-sql>sqrt(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>ucase</function-name>
            <function-sql>upper(?1)</function-sql>
         </function-mapping>    
    
         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>BOOLEAN</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>TINYINT</jdbc-type>
            <sql-type>INT2</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>SMALLINT</jdbc-type>
            <sql-type>INT2</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>INT4</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>BIGINT</jdbc-type>
            <sql-type>INT8</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>FLOAT</jdbc-type>
            <sql-type>FLOAT(7)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>FLOAT8</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR(1)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>TEXT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.util.Date</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>TIMESTAMP</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Time</java-type>
            <jdbc-type>TIME</jdbc-type>
            <sql-type>TIME</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Timestamp</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>TIMESTAMP</sql-type>
         </mapping>
         <mapping>
            <java-type>java.math.BigDecimal</java-type>
            <jdbc-type>NUMERIC</jdbc-type>
            <sql-type>NUMERIC</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>JAVA_OBJECT</jdbc-type>
            <sql-type>OID</sql-type>
         </mapping>
      </type-mapping>

      <type-mapping>
         <name>PostgreSQL 7.2</name>
         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>32</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <function-mapping>
            <function-name>concat</function-name>
            <function-sql>(?1 || ?2)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>substring</function-name>
            <function-sql>substring(?1 FROM ?2 FOR ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>lcase</function-name>
            <function-sql>lower(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>length</function-name>
            <function-sql>length(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>locate</function-name>
            <function-sql>(coalesce(nullif(position(?1 in substring(?2 from ?3)), 0) + ?3 -1, 0))  </function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>abs</function-name>
            <function-sql>abs(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>sqrt</function-name>
            <function-sql>sqrt(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>ucase</function-name>
            <function-sql>upper(?1)</function-sql>
         </function-mapping>    
    
         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>BOOLEAN</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>TINYINT</jdbc-type>
            <sql-type>INT2</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>SMALLINT</jdbc-type>
            <sql-type>INT2</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>INT4</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>BIGINT</jdbc-type>
            <sql-type>INT8</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>FLOAT</jdbc-type>
            <sql-type>FLOAT(7)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>FLOAT8</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR(1)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>TEXT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.util.Date</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>TIMESTAMP</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Time</java-type>
            <jdbc-type>TIME</jdbc-type>
            <sql-type>TIME</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Timestamp</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>TIMESTAMP</sql-type>
         </mapping>
         <mapping>
            <java-type>java.math.BigDecimal</java-type>
            <jdbc-type>NUMERIC</jdbc-type>
            <sql-type>NUMERIC</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>JAVA_OBJECT</jdbc-type>
            <sql-type>BYTEA</sql-type>
         </mapping>
      </type-mapping>

      <type-mapping>
         <name>Hypersonic SQL</name>
         <row-locking-template/>    
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template/>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>32</alias-max-length>
         <subquery-supported>true</subquery-supported>

         <function-mapping>
            <function-name>concat</function-name>
            <function-sql>(?1 || ?2)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>substring</function-name>
            <function-sql>SUBSTRING(?1, ?2, ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>lcase</function-name>
            <function-sql>lcase(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>length</function-name>
            <function-sql>LENGTH(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>locate</function-name>
            <function-sql>LOCATE(?1, ?2, ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>abs</function-name>
            <function-sql>ABS(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>sqrt</function-name>
            <function-sql>SQRT(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>ucase</function-name>
            <function-sql>ucase(?1)</function-sql>
         </function-mapping>    

         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>SMALLINT</jdbc-type>
            <sql-type>SMALLINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.util.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>BIT</jdbc-type>
            <sql-type>BIT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>INTEGER</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>JAVA_OBJECT</jdbc-type>
            <sql-type>OBJECT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>SMALLINT</jdbc-type>
            <sql-type>SMALLINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>VARCHAR(256)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Timestamp</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>TIMESTAMP</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>REAL</jdbc-type>
            <sql-type>REAL</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>BIGINT</jdbc-type>
            <sql-type>BIGINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>DOUBLE</sql-type>
         </mapping>
      </type-mapping>

      <type-mapping>
         <name>PointBase</name>
         <row-locking-template/>
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>32</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>SMALLINT</jdbc-type>
            <sql-type>SMALLINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>BIGINT</jdbc-type>
            <sql-type>INTEGER</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>FLOAT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>FLOAT</jdbc-type>
            <sql-type>FLOAT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>BINARY</jdbc-type>
            <sql-type>BOOLEAN</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>VARCHAR(256)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>SMALLINT</jdbc-type>
            <sql-type>SMALLINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>BLOB</jdbc-type>
            <sql-type>BLOB</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>INTEGER</sql-type>
         </mapping>
      </type-mapping>

      <type-mapping>
         <name>SOLID</name>
         <row-locking-template/>
         <pk-constraint-template>PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>32</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>TINYINT</jdbc-type>
            <sql-type>TINYINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>INTEGER</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>DOUBLE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>BLOB</jdbc-type>
            <sql-type>BLOB</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>VARCHAR(256)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>INTEGER</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Timestamp</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>TIMESTAMP</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>BIT</jdbc-type>
            <sql-type>BIT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>FLOAT</jdbc-type>
            <sql-type>FLOAT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>BIGINT</jdbc-type>
            <sql-type>BIGINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.util.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
      </type-mapping>

      <type-mapping>
         <name>mySQL</name>
         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>32</alias-max-length>
         <subquery-supported>false</subquery-supported>
         <function-mapping>
            <function-name>concat</function-name>
            <function-sql>concat(?1, ?2)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>substring</function-name>
            <function-sql>substring(?1 FROM ?2 FOR ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>lcase</function-name>
            <function-sql>lower(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>length</function-name>
            <function-sql>length(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>locate</function-name>
            <function-sql>locate(?1, ?2, ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>abs</function-name>
            <function-sql>abs(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>sqrt</function-name>
            <function-sql>sqrt(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>ucase</function-name>
            <function-sql>upper(?1)</function-sql>
         </function-mapping>    

         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>FLOAT</jdbc-type>
            <sql-type>FLOAT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>DOUBLE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>TINYINT</jdbc-type>
            <sql-type>TINYINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>JAVA_OBJECT</jdbc-type>
            <sql-type>LONGBLOB</sql-type>
            <!--
            | Change this from LONGBLOB to BLOB if you know your
            | serialized object will be <= 2^16 bytes
            -->
         </mapping>
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>INTEGER</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>SMALLINT</jdbc-type>
            <sql-type>SMALLINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Timestamp</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>TIMESTAMP</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>TINYINT</jdbc-type>
            <sql-type>TINYINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>BIGINT</jdbc-type>
            <sql-type>BIGINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>VARCHAR(255) BINARY</sql-type>
         </mapping>
         <mapping>
            <java-type>java.util.Date</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>DATETIME</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATETIME</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Time</java-type>
            <jdbc-type>TIME</jdbc-type>
            <sql-type>BIGINT</sql-type>
         </mapping>
      </type-mapping>

      <type-mapping>
         <name>MS SQLSERVER</name>
         <row-locking-template>SELECT ?1 FROM ?2 with (rowlock) WHERE ?3</row-locking-template>
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>32</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <function-mapping>
            <function-name>concat</function-name>
            <function-sql>(?1 + ?2)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>substring</function-name>
            <function-sql>substring(?1 FROM ?2 FOR ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>lcase</function-name>
            <function-sql>lower(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>length</function-name>
            <function-sql>len(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>locate</function-name>
            <function-sql>charindex(?1, ?2, ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>abs</function-name>
            <function-sql>abs(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>sqrt</function-name>
            <function-sql>sqrt(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>ucase</function-name>
            <function-sql>upper(?1)</function-sql>
         </function-mapping>    
    
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>INTEGER</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>SMALLINT</jdbc-type>
            <sql-type>SMALLINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>DOUBLE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>DECIMAL</jdbc-type>
            <sql-type>DECIMAL(20)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.math.BigDecimal</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>VARCHAR(256)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>VARCHAR(256)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>JAVA_OBJECT</jdbc-type>
            <sql-type>IMAGE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>TINYINT</jdbc-type>
            <sql-type>TINYINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Timestamp</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>TIMESTAMP</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATETIME</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Time</java-type>
            <jdbc-type>TIME</jdbc-type>
            <sql-type>DATETIME</sql-type>
         </mapping>
         <mapping>
            <java-type>java.util.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATETIME</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>BIT</jdbc-type>
            <sql-type>BIT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>FLOAT</jdbc-type>
            <sql-type>FLOAT</sql-type>
         </mapping>
      </type-mapping>

      <type-mapping> 
         <name>MS SQLSERVER2000</name> 
         <row-locking-template>SELECT ?1 FROM ?2 with (rowlock) WHERE ?3</row-locking-template>
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>32</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <function-mapping>
            <function-name>concat</function-name>
            <function-sql>(?1 + ?2)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>substring</function-name>
            <function-sql>substring(?1 FROM ?2 FOR ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>lcase</function-name>
            <function-sql>lower(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>length</function-name>
            <function-sql>len(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>locate</function-name>
            <function-sql>charindex(?1, ?2, ?3)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>abs</function-name>
            <function-sql>abs(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>sqrt</function-name>
            <function-sql>sqrt(?1)</function-sql>
         </function-mapping>    
         <function-mapping>
            <function-name>ucase</function-name>
            <function-sql>upper(?1)</function-sql>
         </function-mapping>    
    
         <mapping> 
            <java-type>java.lang.Integer</java-type> 
            <jdbc-type>INTEGER</jdbc-type> 
            <sql-type>INTEGER</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Character</java-type> 
            <jdbc-type>CHAR</jdbc-type> 
            <sql-type>CHAR</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Short</java-type> 
            <jdbc-type>SMALLINT</jdbc-type> 
            <sql-type>SMALLINT</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Long</java-type> 
            <jdbc-type>BIGINT</jdbc-type> 
            <sql-type>BIGINT</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.math.BigDecimal</java-type> 
            <jdbc-type>VARCHAR</jdbc-type> 
            <sql-type>VARCHAR(256)</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.String</java-type> 
            <jdbc-type>VARCHAR</jdbc-type> 
            <sql-type>VARCHAR(256)</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Object</java-type> 
            <jdbc-type>JAVA_OBJECT</jdbc-type> 
            <sql-type>IMAGE</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Byte</java-type> 
            <jdbc-type>TINYINT</jdbc-type> 
            <sql-type>TINYINT</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.sql.Timestamp</java-type> 
            <jdbc-type>TIMESTAMP</jdbc-type> 
            <sql-type>TIMESTAMP</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.sql.Date</java-type> 
            <jdbc-type>DATE</jdbc-type> 
            <sql-type>DATETIME</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.sql.Time</java-type> 
            <jdbc-type>TIME</jdbc-type> 
            <sql-type>DATETIME</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.util.Date</java-type> 
            <jdbc-type>DATE</jdbc-type> 
            <sql-type>DATETIME</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Boolean</java-type> 
            <jdbc-type>BIT</jdbc-type> 
            <sql-type>BIT</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Float</java-type> 
            <jdbc-type>REAL</jdbc-type> 
            <sql-type>REAL</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Double</java-type> 
            <jdbc-type>DOUBLE</jdbc-type> 
            <sql-type>FLOAT</sql-type> 
         </mapping> 
      </type-mapping>
      
      <type-mapping>
         <name>DB2/400</name>
         <row-locking-template/>
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>32</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR(1)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>VARCHAR(256)</sql-type>
         </mapping>
    <!-- Apparent DB2/400 doesn't handle Byte type either
         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR(1) FOR BIT DATA</sql-type>
         </mapping>
    -->
         <mapping>
            <java-type>java.util.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Time</java-type>
            <jdbc-type>TIME</jdbc-type>
            <sql-type>TIME</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>FLOAT</jdbc-type>
            <sql-type>FLOAT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>INTEGER</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>DOUBLE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>BIGINT</jdbc-type>
            <sql-type>INTEGER</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR(5)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>SMALLINT</jdbc-type>
            <sql-type>SMALLINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>JAVA_OBJECT</jdbc-type>
            <sql-type>VARCHAR(4096) FOR BIT DATA</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Timestamp</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>TIMESTAMP</sql-type>
         </mapping>
      </type-mapping>

      <type-mapping>
         <name>SapDB</name>
         <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 FOR UPDATE</row-locking-template>
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>32</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>INTEGER</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type>VARCHAR(256)</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>JAVA_OBJECT</jdbc-type>
            <sql-type>LONG BYTE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>TINYINT</jdbc-type>
            <sql-type>CHAR BYTE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Timestamp</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>TIMESTAMP</sql-type>
         </mapping>
         <mapping>
            <java-type>java.util.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Time</java-type>
            <jdbc-type>TIME</jdbc-type>
            <sql-type>TIME</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>BIT</jdbc-type>
            <sql-type>BOOLEAN</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>FLOAT</jdbc-type>
            <sql-type>FLOAT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>SMALLINT</jdbc-type>
            <sql-type>SMALLINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>DOUBLE PRECISION</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>DECIMAL</jdbc-type>
            <sql-type>DECIMAL(20)</sql-type>
         </mapping>
      </type-mapping>

      <type-mapping>
         <name>Cloudscape</name>
         <row-locking-template/>
         <pk-constraint-template>CONSTRAINT ?1 PRIMARY KEY (?2)</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 FOREIGN KEY (?3) REFERENCES ?4 (?5)</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>32</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <mapping>
            <java-type>java.math.BigDecimal</java-type>
            <jdbc-type>LONGVARCHAR</jdbc-type>
            <sql-type>LONG VARCHAR</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Boolean</java-type>
            <jdbc-type>BIT</jdbc-type>
            <sql-type>BOOLEAN</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Byte</java-type>
            <jdbc-type>TINYINT</jdbc-type>
            <sql-type>TINYINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Short</java-type>
            <jdbc-type>SMALLINT</jdbc-type>
            <sql-type>SMALLINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Integer</java-type>
            <jdbc-type>INTEGER</jdbc-type>
            <sql-type>INTEGER</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Long</java-type>
            <jdbc-type>BIGINT</jdbc-type>
            <sql-type>LONGINT</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>REAL</jdbc-type>
            <sql-type>REAL</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Double</java-type>
            <jdbc-type>DOUBLE</jdbc-type>
            <sql-type>DOUBLE PRECISION</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Character</java-type>
            <jdbc-type>CHAR</jdbc-type>
            <sql-type>CHAR</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.String</java-type>
            <jdbc-type>LONGVARCHAR</jdbc-type>
            <sql-type>LONG VARCHAR</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Date</java-type>
            <jdbc-type>DATE</jdbc-type>
            <sql-type>DATE</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Time</java-type>
            <jdbc-type>TIME</jdbc-type>
            <sql-type>TIME</sql-type>
         </mapping>
         <mapping>
            <java-type>java.sql.Timestamp</java-type>
            <jdbc-type>TIMESTAMP</jdbc-type>
            <sql-type>TIMESTAMP</sql-type>
         </mapping>
         <mapping>
            <java-type>java.lang.Object</java-type>
            <jdbc-type>JAVA_OBJECT</jdbc-type>
            <sql-type>LONG VARBINARY</sql-type>
         </mapping>
      </type-mapping>

      
      <type-mapping> 
         <name>InformixDB</name> 
         <row-locking-template/>
         <pk-constraint-template>PRIMARY KEY (?2) CONSTRAINT ?1</pk-constraint-template>
         <fk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT FOREIGN KEY (?3) REFERENCES ?4 (?5) CONSTRAINT ?2</fk-constraint-template>
         <alias-header-prefix>t</alias-header-prefix>
         <alias-header-suffix>_</alias-header-suffix>
         <alias-max-length>32</alias-max-length>
         <subquery-supported>true</subquery-supported>
         <mapping> 
            <java-type>java.lang.Character</java-type> 
            <jdbc-type>CHAR</jdbc-type> 
            <sql-type>CHAR(1)</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.String</java-type> 
            <jdbc-type>VARCHAR</jdbc-type> 
            <sql-type>VARCHAR(255,0)</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.math.BigDecimal</java-type> 
            <jdbc-type>NUMERIC</jdbc-type> 
            <sql-type>DECIMAL</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Boolean</java-type> 
            <jdbc-type>BIT</jdbc-type> 
            <sql-type>SMALLINT</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Integer</java-type> 
            <jdbc-type>INTEGER</jdbc-type> 
            <sql-type>INTEGER</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Long</java-type> 
            <jdbc-type>BIGINT</jdbc-type> 
            <sql-type>NUMERIC(18,0)</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Float</java-type> 
            <jdbc-type>REAL</jdbc-type> 
            <sql-type>FLOAT</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Double</java-type> 
            <jdbc-type>DOUBLE</jdbc-type> 
            <sql-type>DOUBLE PRECISION</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Byte</java-type> 
            <jdbc-type>TINYINT</jdbc-type> 
            <sql-type>SMALLINT</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Short</java-type> 
            <jdbc-type>SMALLINT</jdbc-type> 
            <sql-type>SMALLINT</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.util.Date</java-type> 
            <jdbc-type>DATE</jdbc-type> 
            <sql-type>DATE</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.sql.Date</java-type> 
            <jdbc-type>DATE</jdbc-type> 
            <sql-type>DATE</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.sql.Time</java-type> 
            <jdbc-type>TIME</jdbc-type> 
            <sql-type>TIME</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.sql.Timestamp</java-type> 
            <jdbc-type>TIMESTAMP</jdbc-type> 
            <sql-type>DATETIME YEAR TO FRACTION(3)</sql-type> 
         </mapping> 
    
         <mapping> 
            <java-type>java.lang.Object</java-type> 
            <jdbc-type>JAVA_OBJECT</jdbc-type> 
            <sql-type>BYTE</sql-type> 
         </mapping> 
      </type-mapping> 

   </type-mappings>
</jbosscmp-jdbc>
