[jboss-user] [JBoss Portal] - Re: Quirky Behavior of Jackrabbit CMS?

david.hoffman do-not-reply at jboss.com
Wed Jun 6 12:11:39 EDT 2007


OK, I have been able to prove beyond a doubt that using the filesystem for document storage works just fine.  I have followed all the recommendations above and, still, upon restart content disappears (it is in the database but not accessible by the portal).

anonymous wrote : 
  | I am using the latest production release JDBC driver for MySQL5. 
  | 
  | I have no doubt this is a configuration issue I may have missed. Can someone point me toward specific configuration files that I can provide which may shed some light on the matter. 
  | 
  | To recap: 
  | 
  | I am able to see new content in the CMSAdmin portlet, and in instances that are configured to point to it, so long as I don't restart. Once I restart all new data appears to be gone (from a UI perspective). I have confirmed that the content does in fact exist inside the database (after a restart), however the CMSAdmin porlet does not display it. Additionally any instance configured to display the content is showing a message: 
  | 
  | 404 - Page Not Found
  | Oops! We can't really find the resource you're looking for.
  | 
  | I am running "jboss-portal-2.6-CR2-bundled" against a mySQL5 database. The portal is working fine, all functions as expected with the exception of the CMS Functionality 
  | 

The following are all the config changes that have been made.  Admittedly, most are in getting the Portal to use MySQL, but perhaps there is a chance that was missed that is affecting CMS.  This is the complete list of files that have been modified away from the "out-of-the-box" clean install.

Any assistance in this matter would be greatly appreciated.

server/default/deploy/mysql-ds.xml

  | <datasources>
  |   <local-tx-datasource>
  |     <jndi-name>DefaultDS</jndi-name>
  |     <connection-url>jdbc:mysql://localhost:3306/jboss26cr2?useServerPrepStmts=false</connection-url>
  |     <driver-class>com.mysql.jdbc.Driver</driver-class>
  |     <user-name>XXXXXXXXXX</user-name>
  |     <password>XXXXXXXXXX</password>
  |     <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
  |     <!-- should only be used on drivers after 3.22.1 with "ping" support
  |     <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
  |     -->
  |     <!-- sql to call when connection is created
  |     <new-connection-sql>some arbitrary sql</new-connection-sql>
  |       -->
  |     <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers
  |     <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
  |       -->
  | 
  |     <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
  |     <metadata>
  |        <type-mapping>mySQL</type-mapping>
  |     </metadata>
  |   </local-tx-datasource>
  | </datasources>
  | 

server/default/deploy/portal-mysql-ds.xml

  | <datasources>
  |   <local-tx-datasource>
  |     <jndi-name>PortalDS</jndi-name>
  |     <connection-url>jdbc:mysql://localhost:3306/jboss26cr2?useServerPrepStmts=false</connection-url>
  |     <driver-class>com.mysql.jdbc.Driver</driver-class>
  |     <user-name>XXXXXXXXXX</user-name>
  |     <password>XXXXXXXXXX</password>
  |     <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
  |     <!-- should only be used on drivers after 3.22.1 with "ping" support
  |     <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
  |     -->
  |     <!-- sql to call when connection is created
  |     <new-connection-sql>some arbitrary sql</new-connection-sql>
  |       -->
  |     <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers
  |     <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
  |       -->
  | 
  |     <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
  |     <metadata>
  |        <type-mapping>mySQL</type-mapping>
  |     </metadata>
  |   </local-tx-datasource>
  | </datasources>
  | 

server/default/deploy/jboss-portal.sar/portal-cms.sar/conf/hibernate/cms/hibernate.cfg.xml

  | <hibernate-configuration>
  |    <session-factory>
  |       <property name="connection.datasource">java:PortalDS</property>
  |       <property name="show_sql">false</property>      
  |       
  |       <!--  caching properties -->
  |       <property name="cache.use_second_level_cache">true</property>
  |       <property name="cache.use_query_cache">true</property>
  |       <property name="cache.provider_configuration_file_resource_path">conf/hibernate/cms/ehcache.xml</property>
  |       <property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
  | 
  |       <!-- managed environment transaction configuration -->
  |       <property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
  |       <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
  | 
  |       <!-- Force the dialect instead of using autodetection -->
  |       <!--property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property-->
  |       <!--property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property-->
  | 
  |       <!-- Force the dialect instead of using autodetection  -->      
  |       <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
  | 
  |       <!-- Mapping files -->
  |       <mapping resource="conf/hibernate/cms/domain.hbm.xml"/>
  |       
  |    </session-factory>
  | </hibernate-configuration>
  | 
server/default/deploy/mysql-jdbc2-service.xml

  | <server>
  | 
  |   <!-- ==================================================================== -->
  |   <!-- Persistence and caching using MySQL                                  -->
  |   <!-- IMPORTANT: Remove hsqldb-jdbc2-service.xml                           -->
  |   <!--                                                                      -->
  |   <!-- ==================================================================== -->
  | 
  |   <!--
  |      | The destination manager is the core service within JBossMQ
  |   -->
  |   <mbean code="org.jboss.mq.server.jmx.DestinationManager" name="jboss.mq:service=DestinationManager">
  |     <depends optional-attribute-name="MessageCache">jboss.mq:service=MessageCache</depends>
  |     <depends optional-attribute-name="PersistenceManager">jboss.mq:service=PersistenceManager</depends>
  |     <depends optional-attribute-name="StateManager">jboss.mq:service=StateManager</depends>
  |   </mbean>
  | 
  |   <!--
  |      | The MessageCache decides where to put JBossMQ message that
  |      | are sitting around waiting to be consumed by a client.
  |      |
  |      | The memory marks are in Megabytes.  Once the JVM memory usage hits
  |      | the high memory mark, the old messages in the cache will start getting
  |      | stored in the DataDirectory.  As memory usage gets closer to the
  |      | Max memory mark, the amount of message kept in the memory cache aproaches 0.
  |    -->
  |   <mbean code="org.jboss.mq.server.MessageCache"
  | 	 name="jboss.mq:service=MessageCache">
  |     <attribute name="HighMemoryMark">50</attribute>
  |     <attribute name="MaxMemoryMark">60</attribute>
  |     <attribute name="CacheStore">jboss.mq:service=PersistenceManager</attribute>
  |   </mbean>
  | 
  |   <!-- The PersistenceManager is used to store messages to disk. -->
  |   <!-- 
  |      | The jdbc2 PersistenceManager is the new improved JDBC implementation.
  |      | This implementation allows you to control how messages are stored in 
  |      | the database.
  |      | 
  |      | This jdbc2 PM configuration has was supplied by Stephane Nicoll in the forums as an example for MySQL
  |    -->
  |   <mbean code="org.jboss.mq.pm.jdbc2.PersistenceManager"
  | 	 name="jboss.mq:service=PersistenceManager">
  |     <depends optional-attribute-name="ConnectionManager">jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
  |     <attribute name="SqlProperties">
  |       BLOB_TYPE=BYTES_BLOB
  |       INSERT_TX = INSERT INTO JMS_TRANSACTIONS (TXID) values(?)
  |       INSERT_MESSAGE = INSERT INTO JMS_MESSAGES (MESSAGEID, DESTINATION, MESSAGEBLOB, TXID, TXOP) VALUES(?,?,?,?,?)
  |       SELECT_ALL_UNCOMMITED_TXS = SELECT TXID FROM JMS_TRANSACTIONS
  |       SELECT_MAX_TX = SELECT MAX(TXID) FROM JMS_MESSAGES 
  |       DELETE_ALL_TX = DELETE FROM JMS_TRANSACTIONS
  |       SELECT_MESSAGES_IN_DEST = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES WHERE DESTINATION=?
  |       SELECT_MESSAGE_KEYS_IN_DEST = SELECT MESSAGEID FROM JMS_MESSAGES WHERE DESTINATION=?
  |       SELECT_MESSAGE = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES WHERE MESSAGEID=? AND DESTINATION=?
  |       MARK_MESSAGE = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE MESSAGEID=? AND DESTINATION=?
  |       UPDATE_MESSAGE = UPDATE JMS_MESSAGES SET MESSAGEBLOB=? WHERE MESSAGEID=? AND DESTINATION=?
  |       UPDATE_MARKED_MESSAGES = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=?
  |       UPDATE_MARKED_MESSAGES_WITH_TX = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=? AND TXID=?
  |       DELETE_MARKED_MESSAGES_WITH_TX = DELETE JMS_MESSAGES FROM JMS_MESSAGES, JMS_TRANSACTIONS WHERE JMS_MESSAGES.TXID = JMS_TRANSACTIONS.TXID AND JMS_MESSAGES.TXOP=?
  |       DELETE_TX = DELETE FROM JMS_TRANSACTIONS WHERE TXID = ?
  |       DELETE_MARKED_MESSAGES = DELETE FROM JMS_MESSAGES WHERE TXID=? AND TXOP=?
  |       DELETE_TEMPORARY_MESSAGES = DELETE FROM JMS_MESSAGES WHERE TXOP='T'
  |       DELETE_MESSAGE = DELETE FROM JMS_MESSAGES WHERE MESSAGEID=? AND DESTINATION=?
  |       CREATE_MESSAGE_TABLE = CREATE TABLE JMS_MESSAGES (MESSAGEID INTEGER NOT NULL, DESTINATION TEXT NOT NULL, TXID INTEGER, TXOP CHAR(1), MESSAGEBLOB LONGBLOB, PRIMARY KEY (MESSAGEID, DESTINATION(255)))
  |       CREATE_IDX_MESSAGE_TXOP_TXID = CREATE INDEX JMS_MESSAGES_TXOP_TXID ON JMS_MESSAGES (TXOP, TXID)
  |       CREATE_IDX_MESSAGE_DESTINATION = CREATE INDEX JMS_MESSAGES_DESTINATION ON JMS_MESSAGES (DESTINATION)
  |       CREATE_TX_TABLE = CREATE TABLE JMS_TRANSACTIONS ( TXID INTEGER, PRIMARY KEY (TXID) )
  |       CREATE_TABLES_ON_STARTUP = TRUE
  |     </attribute>
  |     <!-- Uncomment to override the transaction timeout for recovery per queue/subscription, in seconds -->
  |     <!--attribute name="RecoveryTimeout">0</attribute-->
  |     <!-- The number of blobs to load at once during message recovery -->
  |     <attribute name="RecoverMessagesChunk">1</attribute>
  |   </mbean>
  | 
  | </server>
  | 

server/default/conf/standardjaws.xml

  | <jaws>
  |    <datasource>java:/DefaultDS</datasource>
  |    <type-mapping>mySQL</type-mapping>
  |    <debug>false</debug>
  | 
  |    <default-entity>
  |       <create-table>true</create-table>
  |       <remove-table>false</remove-table>
  |       <tuned-updates>true</tuned-updates>
  |       <read-only>false</read-only>
  |       <time-out>300</time-out>
  |       <row-locking>false</row-locking>
  |       <read-ahead>false</read-ahead>
  |    </default-entity>
  | 
  |    <type-mappings>
  |       <type-mapping-definition>
  | 	 <name>InterBase</name>
  | 	 <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-definition>
  | 
  |       <type-mapping-definition>
  | 	 <name>DB2</name>
  | 	 <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-definition>
  | 
  |       <type-mapping-definition>
  | 	 <name>Oracle8</name>
  | 	 <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>
  | 	    <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>BLOB</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-definition>
  | 
  |       <type-mapping-definition>
  | 	 <name>Oracle7</name>
  | 	 <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>
  | 	    <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-definition>
  | 
  |       <type-mapping-definition>
  | 	 <name>Sybase</name>
  | 	 <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-definition>
  | 
  |       <type-mapping-definition>
  |          <name>PostgreSQL</name>
  | 	     <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.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>OID</sql-type>
  |          </mapping>
  |       </type-mapping-definition>
  | 
  |       <type-mapping-definition>
  |          <name>PostgreSQL 7.2</name>
  | 	     <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.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>BYTEA</sql-type>
  |          </mapping>
  |       </type-mapping-definition>
  | 
  |       <type-mapping-definition>
  | 	 <name>Hypersonic SQL</name>
  | 	 <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-definition>
  | 
  |       <type-mapping-definition>
  | 	 <name>PointBase</name>
  | 	 <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-definition>
  | 
  |       <type-mapping-definition>
  | 	 <name>SOLID</name>
  | 	 <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-definition>
  | 
  |       <type-mapping-definition>
  | 	 <name>mySQL</name>
  | 	 <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>BLOB</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.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>DATE</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-definition>
  | 
  |       <type-mapping-definition>
  | 	 <name>MS SQLSERVER</name>
  | 	 <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-definition>
  | 
  |       <type-mapping-definition> 
  | 	 <name>MS SQLSERVER2000</name> 
  | 	 
  | 	 <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-definition>
  |       
  |       <type-mapping-definition>
  | 	 <name>DB2/400</name>
  | 	 <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-definition>
  | 
  |       <type-mapping-definition>
  | 	 <name>SapDB</name>
  | 	 <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-definition>
  | 
  |       <type-mapping-definition>
  | 	 <name>Cloudscape</name>
  | 	 <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-definition>
  | 
  |       
  |       <type-mapping-definition> 
  | 	 <name>InformixDB</name> 
  | 	 <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-definition> 
  | 
  |    </type-mappings>
  | </jaws>
  | 

server/default/conf/standardjbosscmp-jdbc.xml

  | <jbosscmp-jdbc>
  | 
  |    <defaults>
  |       <datasource>java:/DefaultDS</datasource>
  |       <datasource-mapping>mySQL</datasource-mapping>
  | 
  |       <create-table>true</create-table>
  |       <remove-table>false</remove-table>
  |       <read-only>false</read-only>
  |       <read-time-out>300000</read-time-out>
  |       <row-locking>false</row-locking>
  |       <pk-constraint>true</pk-constraint>
  |       <fk-constraint>true</fk-constraint>
  |       <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>
  |       <clean-read-ahead-on-load>false</clean-read-ahead-on-load>
  | 
  |       <unknown-pk>
  |          <key-generator-factory>UUIDKeyGeneratorFactory</key-generator-factory>
  |          <unknown-pk-class>java.lang.String</unknown-pk-class>
  |          <jdbc-type>VARCHAR</jdbc-type>
  |          <sql-type>VARCHAR(32)</sql-type>
  |       </unknown-pk>
  | 
  |       <entity-command name="default"/>
  |       <ql-compiler>org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLCompiler</ql-compiler>
  |       <throw-runtime-exceptions>false</throw-runtime-exceptions>
  |    </defaults>
  | 
  |    <type-mappings>
  |       <type-mapping>
  |          <name>FirstSQL/J</name>
  |          <row-locking-template/>
  |          <pk-constraint-template>PRIMARY KEY (?2)</pk-constraint-template>
  |          <fk-constraint-template>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>
  |          <true-mapping>1</true-mapping>
  |          <false-mapping>0</false-mapping>
  | 
  |          <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>char_length(?1)</function-sql>
  |          </function-mapping>
  |          <function-mapping>
  |             <function-name>locate</function-name>
  |             <function-sql>position(?1 IN ?2)</function-sql>
  |          </function-mapping>
  |          <function-mapping>
  |             <function-name>abs</function-name>
  |             <function-sql>math.abs(?1)</function-sql>
  |          </function-mapping>
  |          <function-mapping>
  |             <function-name>sqrt</function-name>
  |             <function-sql>math.sqrt(CAST(?1 AS DOUBLE))</function-sql>
  |          </function-mapping>
  |          <function-mapping>
  |             <function-name>ucase</function-name>
  |             <function-sql>upper(?1)</function-sql>
  |          </function-mapping>
  |          <function-mapping>
  |             <function-name>count</function-name>
  |             <function-sql>count(?1)</function-sql>
  |          </function-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.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>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>
  |             <!-- or <sql-type>VARCHAR(2147483500)</sql-type> -->
  |             <sql-type>VARCHAR(256)</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.util.Date</java-type>
  |             <jdbc-type>TIMESTAMP</jdbc-type>
  |             <sql-type>TIMESTAMP</sql-type>
  |          </mapping>
  |          <mapping>
  |             <java-type>java.math.BigDecimal</java-type>
  |             <jdbc-type>DECIMAL</jdbc-type>
  |             <sql-type>DECIMAL</sql-type>
  |          </mapping>
  |          <mapping>
  |             <java-type>java.lang.Object</java-type>
  |             <!-- FirstSQL/J only supports directly serializable objects for classes declared with CREATE CLASS -->
  |             <jdbc-type>LONGVARBINARY</jdbc-type>
  |             <sql-type>VARCHAR(2147483500)</sql-type>
  |          </mapping>
  |       </type-mapping>
  | 
  |       <type-mapping>
  |          <name>Ingres</name>
  |          <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 ORDER BY ?4 FOR UPDATE</row-locking-template>
  |          <pk-constraint-template>ALTER TABLE ?1 ADD CONSTRAINT ?2 PRIMARY KEY (?3)</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>
  |          <true-mapping>TRUE</true-mapping>
  |          <false-mapping>FALSE</false-mapping>
  | 
  |          <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>left(?1,?2)</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)</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>
  |          <function-mapping>
  |             <function-name>count</function-name>
  |             <function-sql>count(?1)</function-sql>
  |          </function-mapping>
  | 
  |          <!-- change from bit to integer , 10.12.2002 heb -->
  |          <mapping>
  |             <java-type>java.lang.Boolean</java-type>
  |             <jdbc-type>INTEGER</jdbc-type>
  |             <sql-type>INTEGER</sql-type>
  |          </mapping>
  |          <mapping>
  |             <java-type>java.lang.Byte</java-type>
  |             <jdbc-type>TINYINT</jdbc-type>
  |             <sql-type>INT1</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>INTEGER4</sql-type>
  |          </mapping>
  |          <mapping>
  |             <java-type>java.lang.Float</java-type>
  |             <jdbc-type>FLOAT</jdbc-type>
  |             <sql-type>FLOAT4</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</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.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.math.BigDecimal</java-type>
  |             <jdbc-type>DOUBLE</jdbc-type>
  |             <sql-type>FLOAT8</sql-type>
  |          </mapping>
  | <!--
  | Mapping proposed by Computer Associates, but does not work with JBoss properly
  | 28.03.2003 hou
  |          <mapping>
  |             <java-type>java.math.BigDecimal</java-type>
  |             <jdbc-type>NUMERIC</jdbc-type>
  |             <sql-type>DECIMAL(24,6)</sql-type>
  |          </mapping>
  | -->
  |          <mapping>
  |             <java-type>java.lang.Object</java-type>
  |             <jdbc-type>JAVA_OBJECT</jdbc-type>
  |             <sql-type>LONG VARCHAR</sql-type>
  |          </mapping>
  |       </type-mapping>
  |      <type-mapping>
  |       <name>McKoi</name>
  |       <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 ORDER BY ?4 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>
  |       <true-mapping>TRUE</true-mapping>
  |       <false-mapping>FALSE</false-mapping>
  | 
  |          <function-mapping>
  |             <function-name>count</function-name>
  |             <function-sql>count(?1)</function-sql>
  |          </function-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>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>BIGINT</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</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>JAVA_OBJECT</sql-type>
  |       </mapping>
  |      </type-mapping>
  | 
  |       <type-mapping>
  |          <name>Firebird</name>
  |          <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 ORDER BY ?4 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>31</alias-max-length>
  |          <subquery-supported>true</subquery-supported>
  |          <true-mapping>1</true-mapping>
  |          <false-mapping>0</false-mapping>
  | 
  |          <function-mapping>
  |             <function-name>count</function-name>
  |             <function-sql>count(?1)</function-sql>
  |          </function-mapping>
  | 
  |          <mapping>
  |             <java-type>java.lang.Boolean</java-type>
  |             <jdbc-type>BIT</jdbc-type>
  |             <sql-type>SMALLINT default 0</sql-type>
  |          </mapping>
  |          <mapping>
  |             <java-type>java.lang.Byte</java-type>
  |             <jdbc-type>TINYINT</jdbc-type>
  |             <sql-type>SMALLINT default 0</sql-type>
  |          </mapping>
  |          <mapping>
  |             <java-type>java.lang.Short</java-type>
  |             <jdbc-type>SMALLINT</jdbc-type>
  |             <sql-type>SMALLINT default 0</sql-type>
  |          </mapping>
  |          <mapping>
  |             <java-type>java.lang.Integer</java-type>
  |             <jdbc-type>INTEGER</jdbc-type>
  |             <sql-type>INTEGER default 0</sql-type>
  |          </mapping>
  |          <mapping>
  |             <java-type>java.lang.Long</java-type>
  |             <jdbc-type>BIGINT</jdbc-type>
  |             <sql-type>NUMERIC(18,0) default 0</sql-type>
  |          </mapping>
  |          <mapping>
  |             <java-type>java.lang.Float</java-type>
  |             <jdbc-type>REAL</jdbc-type>
  |             <sql-type>FLOAT default 0</sql-type>
  |          </mapping>
  |          <mapping>
  |             <java-type>java.lang.Double</java-type>
  |             <jdbc-type>DOUBLE</jdbc-type>
  |             <sql-type>DOUBLE PRECISION default 0</sql-type>
  |          </mapping>
  |          <mapping>
  |             <java-type>java.lang.Character</java-type>
  |             <jdbc-type>VARCHAR</jdbc-type>
  |             <sql-type>CHAR</sql-type>
  |          </mapping>
  |          <mapping>
  |             <!-- The small default length is due to the 128 byte max index key size -->
  |             <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>BLOB</sql-type>
  |          </mapping>
  |       </type-mapping>
  | 
  |       <type-mapping>
  |          <name>InterBase</name>
  |          <row-locking-template>SELECT ?1 FROM ?2 WHERE ?3 ORDER BY ?4 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>31</alias-max-length>
  |          <subquery-supported>true</subquery-supported>
  |          <true-mapping>1</true-mapping>
  |          <

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4051795#4051795

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4051795



More information about the jboss-user mailing list