-
15. Quirky Behavior of Jackrabbit CMS?
david.hoffman May 29, 2007 11:37 AM (in response to david.hoffman)I have attempted to use mysql-connector-java-3.1.14-bin.jar based on the earlier post that the developer was using mysql-connector-java-3.1.4-beta-bin.jar.
I am experiencing the same behavior. The content continues to exist so long as the portal is not stopped and then restarted.
Is there anyone who has had success with this, or from jboss, that could offer some support to identify what it is that I have configured improperly which is causing this "quirky behavior"?
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 -
16. Re: Quirky Behavior of Jackrabbit CMS?
rharari May 30, 2007 12:36 AM (in response to david.hoffman)Hi David,
I´m using mysql-connector-java-5.0.4-bin.jar with MySQL5.0 and works fine.
Try this:
- change to store documents in file system and see the behaviour - if the documents are still there after restarting jboss server you will be sure that the problem is with your database or connector.
http://docs.jboss.org/jbportal/v2.6/reference-guide/en/html/cmsPortlet.html#configuration-cms_fs
- make sure that you have declared useServerPrepStmts=false in url connection:<connection-url>jdbc:mysql://localhost:3306/portal?useServerPrepStmts=false</connection-url>
regards
R.Harari[/url] -
17. Re: Quirky Behavior of Jackrabbit CMS?
rharari May 30, 2007 12:44 AM (in response to david.hoffman)another tip:
Edit this file: portal-cms.sar\conf\hibernate\cms\hibernate.cfg.xml and force the dialect:... <!-- 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>
-
18. Re: Quirky Behavior of Jackrabbit CMS?
david.hoffman Jun 6, 2007 12:11 PM (in response to david.hoffman)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).
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> <
-
19. Re: Quirky Behavior of Jackrabbit CMS?
david.hoffman Jun 8, 2007 2:07 PM (in response to david.hoffman)Noone has any suggestions?