- This topic has 5 replies, 2 voices, and was last updated 18 years, 4 months ago by
pnvsgupta.
-
AuthorPosts
-
pnvsguptaMemberI have a table with primary key column set as increment in mapping file. I am trying to insert a record into DB and I am getting an error saying “CLASSCAST EXCEPTION Integer”. Please help me in resolving this issue. I have created the class files using Hibernate Reverse engineering option and am using MYSQL DB.
March 1, 2007 at 4:28 pm #266872
Haris PecoMemberpnvsgupta,
Could you please send your mappings and ddl (create table) files and your code for inserting a record ?
Regards,
March 1, 2007 at 8:55 pm #266883
pnvsguptaMemberHi Peco,
Please find all the necessary files.
——————————————-
hibernate.cfg.xml
<?xml version=’1.0′ encoding=’UTF-8′?>
<!DOCTYPE hibernate-configuration PUBLIC
“-//Hibernate/Hibernate Configuration DTD 3.0//EN”
“http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd”><!– Generated by MyEclipse Hibernate Tools. –>
<hibernate-configuration><session-factory>
<property name=”connection.username”>root</property>
<property name=”connection.url”>
jdbc:mysql://localhost:3306/sq
</property>
<property name=”dialect”>
org.hibernate.dialect.MySQLDialect
</property>
<property name=”show_sql”>true</property>
<property name=”myeclipse.connection.profile”>SQ</property>
<property name=”connection.password”>mejenta</property>
<property name=”connection.driver_class”>
com.mysql.jdbc.Driver
</property>
<property name=”format_sql”>true</property>
<property name=”jdbc.batch_size”>0</property>
<mapping resource=”com/msi/sq/admin/User.hbm.xml” />
<mapping resource=”com/msi/sq/admin/EnterpriseInfo.hbm.xml” /></session-factory>
</hibernate-configuration>
——————————————————-
EnterpriseInfo.hbm.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<!DOCTYPE hibernate-mapping PUBLIC “-//Hibernate/Hibernate Mapping DTD 3.0//EN”
“http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd”>
<!–
Mapping file autogenerated by MyEclipse – Hibernate Tools
–>
<hibernate-mapping>
<class name=”com.msi.sq.admin.EnterpriseInfo” table=”sq_enterprise_info” catalog=”sq”>
<id name=”enterpriseCode” type=”java.lang.Integer”>
<column name=”ENTERPRISE_CODE” />
<generator class=”increment”></generator>
</id>
<property name=”enterpriseName” type=”java.lang.String”>
<column name=”ENTERPRISE_NAME” length=”40″ not-null=”true” />
</property>
<property name=”addressOne” type=”java.lang.String”>
<column name=”ADDRESS_ONE” length=”40″ not-null=”true” />
</property>
<property name=”addressTwo” type=”java.lang.String”>
<column name=”ADDRESS_TWO” length=”40″ />
</property>
<property name=”city” type=”java.lang.String”>
<column name=”CITY” length=”30″ not-null=”true” />
</property>
<property name=”state” type=”java.lang.String”>
<column name=”STATE” length=”30″ not-null=”true” />
</property>
<property name=”zipCode” type=”java.lang.String”>
<column name=”ZIP_CODE” length=”10″ not-null=”true” />
</property>
<property name=”country” type=”java.lang.String”>
<column name=”COUNTRY” length=”35″ not-null=”true” />
</property>
<property name=”contactName” type=”java.lang.String”>
<column name=”CONTACT_NAME” length=”25″ />
</property>
<property name=”contactPhone” type=”java.lang.String”>
<column name=”CONTACT_PHONE” length=”15″ not-null=”true” />
</property>
<property name=”contactFax” type=”java.lang.String”>
<column name=”CONTACT_FAX” length=”15″ />
</property>
<property name=”contactEmail” type=”java.lang.String”>
<column name=”CONTACT_EMAIL” length=”40″ />
</property>
<property name=”creationDate” type=”java.util.Date”>
<column name=”CREATION_DATE” length=”19″ not-null=”true” />
</property>
</class>
</hibernate-mapping>
———————————————————————————-
Java Code in EnterpriseInfoDAO.java
public EnterpriseInfo save(EnterpriseInfo transientInstance) {
log.info(“saving EnterpriseInfo instance”);
EnterpriseInfo eInfo=null;
try {
getSession().beginTransaction();
eInfo =(EnterpriseInfo) getSession().save(transientInstance);
getSession().getTransaction().commit();
log.info(“save successful”);
} catch (RuntimeException re) {
log.error(“save failed”, re);
re.printStackTrace();
throw re;
}
return eInfo;
}
——————————————————————————–
DDLCreate table SQ_ENTERPRISE_INFO (
ENTERPRISE_CODE Int NOT NULL AUTO_INCREMENT,
ENTERPRISE_NAME Varchar(40) NOT NULL,
ADDRESS_ONE Varchar(40) NOT NULL,
ADDRESS_TWO Varchar(40),
CITY Varchar(30) NOT NULL,
STATE Varchar(30) NOT NULL,
ZIP_CODE Varchar(10) NOT NULL,
COUNTRY Varchar(35) NOT NULL,
CONTACT_NAME Varchar(25),
CONTACT_PHONE Varchar(15) NOT NULL,
CONTACT_FAX Varchar(15),
CONTACT_EMAIL Varchar(40),
CREATION_DATE Timestamp NOT NULL,
UNIQUE (ENTERPRISE_CODE),
Primary Key (ENTERPRISE_CODE),
UNIQUE Index ENT_CODE_IDX (ENTERPRISE_CODE)
) ENGINE = MyISAM;March 2, 2007 at 1:47 pm #266918
Haris PecoMemberHave you defined enterpriseCode as java.lang.Integer in your POJO ?
Regards,
March 6, 2007 at 11:06 am #267049
pnvsguptaMemberHi Peco,
I have defined enterpriseCode as Integer and Please find the error log
25953 [http-8080-Processor24] INFO com.msi.sq.admin.EnterpriseInfoDAO – saving EnterpriseInfo instance
Hibernate:
select
max(ENTERPRISE_CODE)
from
sq_enterprise_info
26047 [http-8080-Processor24] ERROR com.msi.sq.admin.EnterpriseInfoDAO – save failed
java.lang.ClassCastException: java.lang.Integer
at com.msi.sq.admin.EnterpriseInfoDAO.save(EnterpriseInfoDAO.java:40)
at com.msi.sq.admin.action.SubmitRegistrationAction.execute(SubmitRegistrationAction.java:58)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)March 6, 2007 at 5:34 pm #267059
pnvsguptaMemberPlease close this issue as I was using
SqEnterpriseInfo eInfo = (SqEnterpriseInfo)getSession().save(transientInstance);
in my DAO Class, getSession().save(transientInstance) returns Integer, which I am trying to typecast to my object type and hence, I was getting classcast exception.
Thank you very much !!!
-
AuthorPosts