[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - Mapping String to NVARCHAR2
alex1234567890
do-not-reply at jboss.com
Wed Sep 6 07:43:51 EDT 2006
Hi,
I have entities with Memebers of type String. I try to persist these entities in a Oracle database.
persistence.xml
| <?xml version="1.0" encoding="UTF-8"?>
| <persistence>
| <persistence-unit name="test">
| <jta-data-source>java:/testDS</jta-data-source>
| <properties>
| <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9Dialect"/>
| <property name="hibernate.hbm2ddl.auto" value="validate"/>
| <property name="hibernate.cache.provider_class" value="org.jboss.ejb3.entity.TreeCacheProviderHook"/>
| <property name="hibernate.treecache.mbean.object_name" value="jboss.cache:service=EJB3EntityTreeCache"/>
| <property name="hibernate.cache.use_query_cache" value="true" />
| <property name="hibernate.show_sql" value="true" />
| <property name="jboss.entity.manager.jndi.name" value="java:/EntityManager/classes"/>
| <property name="jboss.entity.manager.factory.jndi.name" value="java:/managedEntityFactories/classes"/>
| </properties>
| </persistence-unit>
| </persistence>
|
The tables in the database are already created. At the start of the JBoss I get the following Exception:
| org.hibernate.HibernateException: Wrong column type: sName, expected: varchar2(255 char)
|
The colum sName has the type nvarchar2 to support unicode. I tried to use a jbosscmp-jdbc.xml to create my own type mapping:
<jbosscmp-jdbc>
|
| <defaults>
| <datasource>java:/testDS</datasource>
| <datasource-mapping>mymapping</datasource-mapping>
| </defaults>
|
| <type-mappings>
| <type-mapping>
| <name>mymapping</name>
| ...
| <mapping>
| <java-type>java.lang.String</java-type>
| <jdbc-type>VARCHAR</jdbc-type>
| <sql-type>NVARCHAR2(255)</sql-type>
| </mapping>
| </type-mapping>
| </type-mappings>
| </jbosscmp-jdbc>
In my datasource configuration I use this type mapping:
| <datasources>
| <local-tx-datasource>
| <jndi-name>testDS</jndi-name>
| <connection-url>...</connection-url>
| <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
| <!-- The login and password -->
| <user-name>...</user-name>
| <password>...</password>
|
| <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
|
| <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
|
| <metadata>
| <type-mapping>mymapping</type-mapping>
| </metadata>
| <max-pool-size>50</max-pool-size>
| </local-tx-datasource>
| </datasources>
|
Why Hybernate don't map java.util.String to NVARCHAR2 with these configuration?
Waht is to do to map String to NVARCHAR2?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3969703#3969703
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3969703
More information about the jboss-user
mailing list