我有点困惑,我的印象是类只需要实现序列化,好吧,如果我需要序列化它们(就像在,hibernate不需要类可序列化,如果我想要的是持久性)
无论如何,以下让我有点困惑。我有一个类,让我们称之为A.与另一个类有一对一的关系。让我们称之为B.
我现在又添加了另一个与C类的一对一关系,现在,当我使用mySession.get(A.class,myid)时,我得到一个运行时异常,告诉我C不能被强制转换可序列化
当我的其他所有hibernate类都不需要它时,我无法理解为什么C需要实现serializable。
更新
另一个奇怪的事情是,这个映射实际上没有“C”类在过去可序列化。
我使用mysql客户端手动更改了表中的数据。我运行了一个更新,它使用UPPER()函数将表中的所有字符串转换为大写。这可能是因为hibernate希望这个类现在可以序列化吗?
答案 0 :(得分:2)
当您忘记将映射映射到类的持久对象时,该错误很常见,
例如你有一个持久化类用户里面有另一个持久化类的地址,地址被映射到用户你忘了把关系一对一然你映射为基本类型检查代码是否有任何原谅的关系映射