- This topic has 8 replies, 3 voices, and was last updated 18 years, 3 months ago by
dkirvan.
-
AuthorPosts
-
dkirvanMember*** Date: Mon Apr 09 16:39:28 EDT 2007
*** System properties:
OS=WindowsXP
OS version=5.1
Java version=1.5.0_10*** MyEclipse details:
MyEclipse Enterprise WorkbenchVersion: 5.0 GA
Build id: 20060805-5.0-GA*** Eclipse details:
MyEclipse Enterprise WorkbenchVersion: 5.0.1 GA
Build id: 20060810-5.0.1-GAEclipse Graphical Editing Framework
Version: 3.2.0.v20060626
Build id: 20060627-0816Eclipse Platform
Version: 3.2.1.r321_v20060921-b_XVA-INSQSyMtx
Build id: M20060921-0945Eclipse RCP
Version: 3.2.1.r321_v20060801-2ekW2BxmcpPUOoq
Build id: M20060921-0945Eclipse Java Development Tools
Version: 3.2.1.r321_v20060905-R4CM1Znkvre9wC-
Build id: M20060921-0945Eclipse Plug-in Development Environment
Version: 3.2.1.r321_v20060823-6vYLLdQ3Nk8DrFG
Build id: M20060921-0945Eclipse Project SDK
Version: 3.2.1.r321_v20060801-tQ1w49KnTArT0FZ
Build id: M20060921-0945Eclipse startup command=-os
win32
-ws
win32
-arch
x86
-launcher
C:\Program Files\Eclipse3.2\eclipse\eclipse.exe
-name
Eclipse
-showsplash
600
-exitdata
268_7c
-product
com.genuitec.myeclipse.product.ide
-vm
C:\WINDOWS\system32\javaw.exeTHE PROBLEM:
I am trying to use the hibernate.reveng.xml during the reverse engineering process to set variables to the data type that I want them to be. No matter what I try (inlcuding trying both upper and lower case) the data values are created as long.OUTPUT FROM REVERSE ENGINEERING:
This shows rolTypeAttrId. dataPrecCnt and dataLenCnt as data type long I am trying to make them java.lang.Integer.<hibernate-mapping>
<class name=”com.agristats.emd.persistence.RolTypeAttr” table=”rol_type_attr” schema=”public”>
<id name=”rolTypeAttrId” type=”long”>
<column name=”rol_type_attr_id” />
<generator class=”sequence” />
</id>
<property name=”stsCd” type=”string”>
<column name=”sts_cd” length=”1″ not-null=”true” />
</property>
<property name=”lastUpdtTs” type=”timestamp”>
<column name=”last_updt_ts” length=”29″ />
</property>
<property name=”entrTs” type=”timestamp”>
<column name=”entr_ts” length=”29″ not-null=”true” />
</property>
<property name=”nm” type=”string”>
<column name=”nm” length=”50″ not-null=”true” />
</property>
<property name=”dataTypeNm” type=”string”>
<column name=”data_type_nm” length=”50″ not-null=”true” />
</property>
<property name=”dataPrecCnt” type=”long”>
<column name=”data_prec_cnt” precision=”2″ scale=”0″ not-null=”true” />
</property>
<property name=”dataLenCnt” type=”long”>
<column name=”data_len_cnt” precision=”3″ scale=”0″ not-null=”true” />
</property>
<property name=”entrUsrId” type=”string”>
<column name=”entr_usr_id” length=”20″ not-null=”true” />
</property>
<property name=”lastUpdtUsrId” type=”string”>
<column name=”last_updt_usr_id” length=”20″ />
</property>
<set name=”rolAttrVals” inverse=”true”>
<key>
<column name=”rol_type_attr_id” not-null=”true” />
</key>
<one-to-many class=”com.agristats.emd.persistence.RolAttrVal” />
</set>
<set name=”rolTypeAsgnAttrs” inverse=”true”>
<key>
<column name=”rol_type_attr_id” not-null=”true” />
</key>
<one-to-many class=”com.agristats.emd.persistence.RolTypeAsgnAttr” />
</set>
</class>
</hibernate-mapping>HIBERNATE.REVENG.XML Looks like the following:
<hibernate-reverse-engineering>
<type-mapping>
<sql-type jdbc-type=”int8″ hibernate-type=”java.lang.Integer” not-null=”true”/>
<sql-type jdbc-type=”INT8″ hibernate-type=”java.lang.Integer” not-null=”true”/>
<sql-type jdbc-type=”int8″ hibernate-type=”java.lang.Integer” not-null=”false”/>
<sql-type jdbc-type=”INT8″ hibernate-type=”java.lang.Integer” not-null=”false”/>
<sql-type jdbc-type=”BIGINT” hibernate-type=”java.lang.Integer” not-null=”false”/>
<sql-type jdbc-type=”bigint” hibernate-type=”java.lang.Integer” not-null=”false”/>
<sql-type jdbc-type=”BIGINT” hibernate-type=”java.lang.Integer” not-null=”true”/>
<sql-type jdbc-type=”bigint” hibernate-type=”java.lang.Integer” not-null=”true”/>
<sql-type jdbc-type=”NUMERIC” hibernate-type=”java.lang.Integer” not-null=”false”/>
<sql-type jdbc-type=”NUMERIC” hibernate-type=”java.lang.Integer” not-null=”true”/>
<sql-type jdbc-type=”NUMERIC(2,0)”
hibernate-type=”java.lang.Integer” not-null=”false”/>
<sql-type jdbc-type=”NUMERIC(2,0)”
hibernate-type=”java.lang.Integer” not-null=”true”/>
<sql-type jdbc-type=”NUMERIC(3,0)”
hibernate-type=”java.lang.Integer” not-null=”false”/>
<sql-type jdbc-type=”NUMERIC(3,0)”
hibernate-type=”java.lang.Integer” not-null=”true”/>
<sql-type jdbc-type=”numeric” hibernate-type=”java.lang.Integer” not-null=”false”/>
<sql-type jdbc-type=”numeric” hibernate-type=”java.lang.Integer” not-null=”true”/>
<sql-type jdbc-type=”numeric(2,0)”
hibernate-type=”java.lang.Integer” not-null=”false”/>
<sql-type jdbc-type=”numeric(2,0)”
hibernate-type=”java.lang.Integer” not-null=”true”/>
<sql-type jdbc-type=”numeric(3,0)”
hibernate-type=”java.lang.Integer” not-null=”false”/>
<sql-type jdbc-type=”numeric(3,0)”
hibernate-type=”java.lang.Integer” not-null=”true”/>
<sql-type jdbc-type=”bigint” hibernate-type=”java.lang.Integer” not-null=”true”/>
<sql-type jdbc-type=”bigint” hibernate-type=”java.lang.Integer” not-null=”true”/><sql-type jdbc-type=”numeric” hibernate-type=”java.lang.Integer”
length=”3″ scale=”0″ precision=”0″ not-null=”false”/>
<sql-type jdbc-type=”NUMERIC” hibernate-type=”java.lang.Integer”
length=”3″ scale=”0″ precision=”0″ not-null=”false”/>
<sql-type jdbc-type=”numeric” hibernate-type=”java.lang.Integer”
length=”3″ scale=”0″ precision=”0″ not-null=”true”/>
<sql-type jdbc-type=”NUMERIC” hibernate-type=”java.lang.Integer”
length=”3″ scale=”0″ precision=”0″ not-null=”true”/><sql-type jdbc-type=”numeric” hibernate-type=”java.lang.Integer”
length=”” scale=”0″ precision=”3″ not-null=”false”/>
<sql-type jdbc-type=”NUMERIC” hibernate-type=”java.lang.Integer”
length=”” scale=”0″ precision=”3″ not-null=”false”/>
<sql-type jdbc-type=”numeric” hibernate-type=”java.lang.Integer”
length=”” scale=”0″ precision=”3″ not-null=”true”/>
<sql-type jdbc-type=”NUMERIC” hibernate-type=”java.lang.Integer”
length=”” scale=”0″ precision=”3″ not-null=”true”/></type-mapping>
April 10, 2007 at 9:32 am #268635
Haris PecoMemberYou have to set the sql-type jdbc-type parameter to jdbc type for your column from java.sql.Types.What is your database and what is type of column which you want reverse ?
Regards
April 10, 2007 at 10:00 am #268638
dkirvanMemberIf you look at the hibernate_reveng.xml data that I provided. I thought that I am trying to change the sql-type jdbc-type parameter to jdbc type for your column from java.sql. Can you provide me with the correct code for the hibernate_reveng.xml file that will convert the following fields to java.lang.Integer?
The database is EnterpriseDB
The Table is rol_type_attr
The columns in the table that I am having problems with are:
data_prec_cnt numeric(2,0)
data_len_cnt numeric(3,0)
rol_type_attr_id bigintWhen displaying the database in MyEclipse DB Explorer Table/Object Info tab the
table rol_type_attr looks like:
data_prec_cnt;numeric;2;0;;NO;NO;;
data_len_cnt;numeric;3;0;;NO;NO;;
rol_type_attr_id;int8;19;0;;NO;YES;;Thank you for your help
David K.April 10, 2007 at 10:00 am #268639
dkirvanMemberIf you look at the hibernate_reveng.xml data that I provided. I thought that I am trying to change the sql-type jdbc-type parameter to jdbc type for your column from java.sql. Can you provide me with the correct code for the hibernate_reveng.xml file that will convert the following fields to java.lang.Integer?
The database is EnterpriseDB
The Table is rol_type_attr
The columns in the table that I am having problems with are:
data_prec_cnt numeric(2,0)
data_len_cnt numeric(3,0)
rol_type_attr_id bigintWhen displaying the database in MyEclipse DB Explorer Table/Object Info tab the
table rol_type_attr looks like:
data_prec_cnt;numeric;2;0;;NO;NO;;
data_len_cnt;numeric;3;0;;NO;NO;;
rol_type_attr_id;int8;19;0;;NO;YES;;Thank you for your help
David K.April 11, 2007 at 12:22 am #268671
Haris PecoMemberDavid,
Please, try the following :
<sql-type jdbc-type=”NUMERIC” precision=’0′ hibernate-type=”java.lang.Integer” />
<sql-type jdbc-type=”INTEGER” hibernate-type=”java.lang.Integer” />
<sql-type jdbc-type=”BIGINT” hibernate-type=”java.lang.Integer” />The jdbc driver return data types NUMERIC, INTEGER and BIGINT and there isn’t strong rules – it depends from database driver and version and sometimes this values are incorrect.Try experiment without length, precision and/or scale and after that add these values.
Regards,
April 11, 2007 at 9:55 am #268688
dkirvanMemberNo success. Bigint and numerics are still being converted to “long”. What else can I try? How do I know if the system is actually reading/using the hibernate.reveng.xml? It should not be that dificult to translate data types at conversion with Hibernate.
Thank you for your assistance,
David K.April 14, 2007 at 7:43 pm #268858
cboudreauMemberHi,
I’m having the same problem listed here but I’m trying to convert from TINYINT to boolean. Has this issue been resolved? I have tried to use the wizard to detect this datatype but I have not found a combination of values to perform this conversion successfully. Here is the line from the hibernate.reveng.xml file that the wizard generated:
<type-mapping>
<sql-type jdbc-type=”TINYINT” hibernate-type=”boolean” length=”1″ />
</type-mapping>In the Java class, I see java.lang.Byte used and in the hibernate mapping I see java.lang.Byte as the hibernate type.
My database is MySQL 5.0.37-community-nt with JDBC Driver mysql-connector-java-5.0.5.
Do you have any more information on doing hibernate type conversions with MySQL? Any help would be appreciated.
Here is the info from my version of MyEclipse:
*** Date:
Saturday, April 14, 2007 8:39:01 PM EDT** System properties:
OS=WindowsXP
OS version=5.1
Java version=1.5.0_08*** MyEclipse details:
MyEclipse Enterprise Workbench
Version: 5.1.1 GA
Build id: 20070302-5.1.1-GA*** Eclipse details:
MyEclipse Enterprise WorkbenchVersion: 5.1.1 GA
Build id: 20070302-5.1.1-GAEclipse Platform
Version: 3.2.2.r322_v20070119-RQghndJN8IM0MsK
Build id: M20070212-1330Eclipse RCP
Version: 3.2.2.r322_v20070104-8pcviKVqd8J7C1U
Build id: M20070212-1330Eclipse Java Development Tools
Version: 3.2.2.r322_v20070104-R4CR0Znkvtfjv9-
Build id: M20070212-1330Eclipse Project SDK
Version: 3.2.2.r322_v20070104-dCGKm0Ln38lm-8s
Build id: M20070212-1330Eclipse Graphical Editing Framework
Version: 3.2.2.v20070208
Build id: 20070208-1315Eclipse startup command=-os
win32
-ws
win32
-arch
x86
-launcher
C:\Program Files\MyEclipse 5.1.1 GA\eclipse\eclipse.exe
-name
Eclipse
-showsplash
600
-exitdata
12d8_4c
-vm
C:\Program Files\MyEclipse 5.1.1 GA\jre\bin\javaw.exeApril 16, 2007 at 7:25 am #268882
dkirvanMemberI am still waiting for help from the support team. I have not been able to resolve this issue. I am under a deadline but have ran into a brick wall with Hibernate. ❓
April 16, 2007 at 1:00 pm #268891
dkirvanMemberIssue resolved.
Looking in the .log file under the project/metadata folder it showed that i had errors in the hibernate.reveng.xml file (see message below). If there are any errors then nothing will get converted according to the reveng.xml file. I ran accross this on my own – which too long to find. I would have thought that someone at Myeclipse would have pointed me to this log file to check for such problems.!ENTRY com.genuitec.eclipse.hibernate 1 0 2007-04-16 09:58:39.102
!MESSAGE Error processing rev-eng settings file
!STACK 0
org.hibernate.MappingException: Could not configure overrides from file: C:\MyEclipse\POC_EMD1\POC_EMD_PRJ2\src\hibernate\hibernate.reveng.xml
at org.hibernate.cfg.reveng.OverrideRepository.addFile(OverrideRepository.java:79)
at com.genuitec.eclipse.hibernate.wizards.GenerateArtifactsJob.run(GenerateArtifactsJob.java:272)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
Caused by: org.hibernate.MappingException: jdbc-type: varchar2 is not a known JDBC Type nor a valid number
at org.hibernate.cfg.reveng.JDBCToHibernateTypeHelper.getJDBCType(JDBCToHibernateTypeHelper.java:119)
at org.hibernate.cfg.reveng.OverrideBinder.bindTypeMappings(OverrideBinder.java:217)
at org.hibernate.cfg.reveng.OverrideBinder.bindRoot(OverrideBinder.java:30)
at org.hibernate.cfg.reveng.OverrideRepository.add(OverrideRepository.java:130)
at org.hibernate.cfg.reveng.OverrideRepository.addInputStream(OverrideRepository.java:109)
at org.hibernate.cfg.reveng.OverrideRepository.addFile(OverrideRepository.java:75)
… 2 more -
AuthorPosts