1.查看实体类有没有实现Serializable接口
例:public class Student implements Serializable {
*****
}
2.看表中的字段有没有在实体中进行关系映射
3.hibernate配置中是否有序列化类型数据,即SerializableType,与对应的数据库数据是否相同
4.jdk,不同的jdk序列化的时候得到的结果是不同的,如果保存数据的时候用的是一个版本的jdk,而读数据(即反序列化的时候)是另一个版本的jdk那么有可能反序列化不成功。
5.最重要的一点(个人认为大家出错的原因是这个)实体类中数据字段类型jar包是否引用正确(注意大小写)。
例如我的错误是把Timestamp引用成了:import org.apache.commons.net.ntp.TimeStamp; import java.security.Timestamp;
而正确的是:import java.sql.Timestamp;
最后,感谢@oldmee 大神提供的解决错误思路。