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,这个异常有时也会在这个问题下出现,所以出现这个异常的时候除了拼写注意也要检查一下类型

你可能感兴趣的:(hibernate)