- This topic has 5 replies, 2 voices, and was last updated 17 years, 7 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.
Haris PecoMemberpnvsgupta,
Could you please send your mappings and ddl (create table) files and your code for inserting a record ?
Regards,
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;
Haris PecoMemberHave you defined enterpriseCode as java.lang.Integer in your POJO ?
Regards,
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)
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