I have been class it has 5 fields and all are of type String
in database(MySQL) the table corresponding to bean has 2 varchar
type remaining 3 are integer
type. I am performing simple insert operation through session.save(obj)
. My Mapping file is as follow ,
<hibernate-mapping>
<class name="com.aurodisplay.its.beans.VehicleRegisterBean"
table="vehicle_details">
<id column="vehicleno" name="vehicleno" type="java.lang.Integer">
<generator class="native" />
</id>
<property column="vehicletype" name="vehicletype" type="java.lang.String"></property>
<property column="model" name="model" type="java.lang.String"></property>
<property column="clientid" name="clientid" type="java.lang.Integer"></property>
<property column="groupid" name="groupid" type="java.lang.Integer"></property>
</class>
</hibernate-mapping>
Here is my Java code snap
Configuration configuration = new Configuration().configure();
// 2. create sessionfactory
SessionFactory sessionFactory = configuration.buildSessionFactory();
// 3. Get Session object
Session session = sessionFactory.openSession();
// 4. Starting Transaction
Transaction transaction = session.beginTransaction();
VehicleRegisterBean vehicleRegisterBean=new VehicleRegisterBean();
vehicleRegisterBean.setVehicletype(request.getParameter("vehicletype"));
vehicleRegisterBean.setModel(request.getParameter("model"));
vehicleRegisterBean.setVehicleno(request.getParameter("vehicleno"));
vehicleRegisterBean.setClientid(request.getParameter("clientid"));
vehicleRegisterBean.setGroupname(request.getParameter("groupname"));
session.save(vehicleRegisterBean);
transaction.commit();
System.out.println("\n\n Details Added \n");
I am getting ClassCastException,
SEVERE: Servlet.service() for servlet [com.abc.its.controller.VehicleRegister] in context with path [/ITS_Server] threw exception
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at org.hibernate.type.IntegerType.set(IntegerType.java:41)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:83)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:60)
at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1947)
at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1924)
at org.hibernate.persister.entity.AbstractEntityPersister$1.bindValues(AbstractEntityPersister.java:2102)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:32)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2108)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2588)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:48)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
I am new to hibernate, So can anyone help me to solve this .
Problem lies in these two lines:
vehicleRegisterBean.setClientid(request.getParameter("clientid"));
vehicleRegisterBean.setGroupname(request.getParameter("groupname"));
You are trying to cast String returned from request.getParameter to Integer values.
You need to convert the string values to Integer.
vehicleRegisterBean.setClientid(Integer.valueOf(request.getParameter("clientid")));
vehicleRegisterBean.setGroupname(Integer.valueOf(request.getParameter("groupname")));
Note: You may need to use variables to get the values from request and put in the null checks before converting to Integer.
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments