Java论坛网»Java技术»Hibernate+Struts 使用PropertyUtils拷贝Form表单对象至VO类 保存至数据库时Date类型无法转换?

Hibernate+Struts 使用PropertyUtils拷贝Form表单对象至VO类 保存至数据库时Date类型无法转换?

问?:
VO类
public Employee implementsSerializable{
String name = null ;
java.util.Date birthday = null ;
//getter and setter method here .
...
}

public EmployeeForm extends AcitonForm {
String name = null ;
java.util.Date birthday = null ;
//getter and setter method here .
...
}

Action:
public ActionForward ( ... ) extends Action {
Employee emp = new Employee () ;
PropertyUtils.copyProperties( emp , (EmployeeForm)form );
saveEmployee( emp ) ; --> 调用SessionFactory 中 save 方法
}

public SessionFactory {

public static Session getSession () {
...
}

public static int add ( obj ) {
try {
Session session = getSession();
session.save(object); //在此报错
} catch ( Exception e ) {
...
}
}
}

异常为 :
java.lang.ClassCastException
at org.hibernate.type.DateType.deepCopyNotNull(DateType.java:82)
at org.hibernate.type.MutableType.deepCopy(MutableType.java:25)
at org.hibernate.type.TypeFactory.deepCopy(TypeFactory.java:323)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate (AbstractSaveEventListener.java:255)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:167)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:114)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:530)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:518)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:514)
at com.stt.doss.util.SessionFactory.add(SessionFactory.java:374)


好像是Date型转换出错
但是,我直接new 一个Employee 的对象,保存时却是可以成功的
是在拷贝时出现了什么其它的情况而导致的吗 ?
谢谢各位指教 ! 在线等
答!: 1:
学习,顶下!
答!: 2:
不要new,然后debug看看copyProperties之前emp的这个域的值是多少?

相关JAVA教程:
"0x004385ae"指令引用的"0X0000014"内存.该内存不能为"read".
在JBoss4.0.4中怎样设置JMS-MDB实例池的上限?
如何改变JFileChooser大小
用什么技术开发动画
求助:不要dtd文件,如何留住xml中的实体引用?
数据库问题让人难以理解
求助----JTable中每次从数据库中取到不同的数据 怎样清空上次记录?
怎么读取Spring 的配置文件applicationContext.xml
很奇怪的问题,java的程序,在台式机上按TAB键是按顺序走,但是在笔记本上却不是,什么原因,谢谢!
请问如何在弹出窗体时暂停原窗口的运行
java和tomcat的环境配置
Jfreechart问题 走势图 在线等 ~