在hibernate中执行Criteria Query时,我得到以下异常:
javax.persistence.PersistenceException: javax.persistence.PersistenceException: org.hibernate.type.SerializationException: could not deserialize: could not deserialize
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?
PS:虽然可能不相关,但我的hibernate版本是hibernate-4.0.1 final.
And*_*i I 26
问题是被引用的实体有另一个对实体的引用,并且该关系没有被任何@OneToMany类似的注释注释.
当hibernate从数据库查询结果中获取意外类型的数据时,可能会发生此异常.例如,hibernate需要数字,但会获取字符串.
在这种情况下,StreamCorruptedException: "invalid stream header": 74657374在stacktrace中查找异常.该数字是暗示,但您可能希望将其转换为带有ascii表的文本.74 65 73 74给出test了字符串.这是类似命名的表列的值,但具有完全不同的类型.所以hibernate正在查询错误的列,它恰好偶然存在,所以引发的第一个异常不是,column does not exist而是could not deserialize相反.Hibernate期待很久但却得到了String.
我在这个烂摊子了,因为正确的@Column(name="id_user")被忽视和休眠infered错列名user从没有字段名idUser,但只是user与getUser()吸气.注释被忽略,因为它是在属性getter而不是字段上指定的,这是hibernate所期望的,因为实体超类注释了ID字段@Id,而不是ID getter,这是我毫无根据的期望.
| 归档时间: |
|
| 查看次数: |
24221 次 |
| 最近记录: |