hibernate保存数据时报java.lang.ClassCastException
使用的Spring+Hibernate
在进行数据保存的时候 报java.lang.ClassCastException
Caused by: java.lang.ClassCastException: java.lang.Long
at com.workflow.model.hibernateDaoImpl.HpmQshjbxxbDaoImpl.saveHpmQshjbxxb(HpmQshjbxxbDaoImpl.java:32)
at com.workflow.model.service.impl.HpmQshjbxxbServiceImpl.saveHpmQshjbxxb(HpmQshjbxxbServiceImpl.java:33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy52.saveHpmQshjbxxb(Unknown Source)
at com.workflow.jbpm.bean.TaskBean.saveBasicInfo(TaskBean.java:127)
at com.workflow.jbpm.bean.TaskBean.saveAllInfo(TaskBean.java:76)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:129)
... 36 more
相关的代码如下 日志错误的JAVA:32 就是以下打*的这行
public HpmQshjbxxb saveHpmQshjbxxb(HpmQshjbxxb hpmQshjbxxb) {
this.logger.info(hpmQshjbxxb.getProcessinstanceId());
try {
//hpmQshjbxxb是从前台传过来的,确保非空。
return (HpmQshjbxxb) this.getHibernateTemplate().save(hpmQshjbxxb);***********
} catch (HibernateException e) {
e.printStackTrace();
throw e;
}
}
VO的配置 以下是VO的 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 Persistence Tools
-->
<hibernate-mapping >
<class name="com.workflow.model.vo.HpmQshjbxxb" table="HPM_QSHJBXXB" schema="JBPM_TEST">
<id name="qshtybh" column="QSHTYBH" type="java.lang.Long" >
<generator class="native" />
</id>
<property name="qshmc" type="java.lang.String">
<column name="QSHMC" length="30" />
</property>
<property name="fddbr" type="java.lang.String">
<column name="FDDBR" length="30" />
</property>
<property name="fddbrzw" type="java.lang.String">
<column name="FDDBRZW" length="30" />
</property>
<property name="dwxz" type="java.lang.String">
<column name="DWXZ" length="30" />
</property>
<property name="hylb" type="java.lang.String">
<column name="HYLB" length="30" />
</property>
<property name="txdz" type="java.lang.String">
<column name="TXDZ" length="30" />
</property>
<property name="yzbm" type="java.lang.String">
<column name="YZBM" length="30" />
</property>
<property name="processinstanceId" type="java.lang.Long">
<column name="PROCESSINSTANCE_ID" not-null="true" />
</property>
</class>
</hibernate-mapping>
以下是VO的POJO
package com.workflow.model.vo;
import java.io.Serializable;
/**
* HpmQshjbxxb generated by MyEclipse Persistence Tools
*/
public class HpmQshjbxxb implements Serializable{
// Fields
private static final long serialVersionUID = 1L;
private long qshtybh=0;
private String qshmc;
private String fddbr;
private String fddbrzw;
private String dwxz;
private String hylb;
private String txdz;
private String yzbm;
private long processinstanceId;
// private Set hpmQsxksqxxbs = new HashSet(0);
// Constructors
/** default constructor */
public HpmQshjbxxb() {
}
/** minimal constructor */
public HpmQshjbxxb(long qshtybh, long processinstanceId) {
this.qshtybh = qshtybh;
this.processinstanceId = processinstanceId;
}
/** full constructor */
public HpmQshjbxxb(long qshtybh, String qshmc, String fddbr,
String fddbrzw, String dwxz, String hylb, String txdz, String yzbm,
long processinstanceId) {
this.qshtybh = qshtybh;
this.qshmc = qshmc;
this.fddbr = fddbr;
this.fddbrzw = fddbrzw;
this.dwxz = dwxz;
this.hylb = hylb;
this.txdz = txdz;
this.yzbm = yzbm;
this.processinstanceId = processinstanceId;
// this.hpmQsxksqxxbs = hpmQsxksqxxbs;
}
// Property accessors
public long getQshtybh() {
return this.qshtybh;
}
public void setQshtybh(long qshtybh) {
this.qshtybh = qshtybh;
}
public String getQshmc() {
return this.qshmc;
}
public void setQshmc(String qshmc) {
this.qshmc = qshmc;
}
public String getFddbr() {
return this.fddbr;
}
public void setFddbr(String fddbr) {
this.fddbr = fddbr;
}
public String getFddbrzw() {
return this.fddbrzw;
}
public void setFddbrzw(String fddbrzw) {
this.fddbrzw = fddbrzw;
}
public String getDwxz() {
return this.dwxz;
}
public void setDwxz(String dwxz) {
this.dwxz = dwxz;
}
public String getHylb() {
return this.hylb;
}
public void setHylb(String hylb) {
this.hylb = hylb;
}
public String getTxdz() {
return this.txdz;
}
public void setTxdz(String txdz) {
this.txdz = txdz;
}
public String getYzbm() {
return this.yzbm;
}
public void setYzbm(String yzbm) {
this.yzbm = yzbm;
}
public long getProcessinstanceId() {
return this.processinstanceId;
}
public void setProcessinstanceId(long processinstanceId) {
this.processinstanceId = processinstanceId;
}
}