Hibernate:关于Column '*' not found和could not deserialize

今天在自己项目里初试Hibernate的ORM,遇到了这个问题,尝试多种方法无果,最后研究了半天发现了是什么问题,最后总结下会出现这个问题的两种情况:
1.Column ‘*’ not found,顾名思义,数据库表里没有对应的列
先看看是否加了Table映射了正确的表,以及是否加了Column映射了正确的列。
2.could not deserialize,一般实体类的成员变量的类型错误
这种情况根据实际情况可能会抛2种不同异常,异常的类型和你调用增删改查的类和那个出现错误类的关系决定的。
第一种异常就是序列化失败,could not deserialize,这个时候先去检查下是不是实现了Serializable接口,并且设置了SerializableUID,如果实现了并且设置了还有这个异常,很有可能是Date不是java.sql中的而是用的java.util里的,或者String类是其他jar包里的string,比如Spring就有一个String类型,有时IDE自动就给你引入了其他的类,尤其是Date很容易出现这个问题。
原因是Hibernate进行序列化和反序列化的时候,并不能序列化这些其他的类,这些类没有实现序列化接口,并不能被序列化,所有抛出了这个异常。
第二种异常就是Column ‘*’ not found,这个异常有时也会在这个问题下出现,所以出现这个异常的时候除了拼写注意也要检查一下类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值