从数据库反序列化对象(Java / Hibernate)

时间:2011-04-25 23:45:41

标签: java hibernate serialization deserialization

我有一个MS 2000数据库,由我们的主Java应用程序使用。该应用程序有一个类(让我们称之为' car'),它被序列化并使用Hibernate3作为表中的单个字段放入数据库。它具有Hibernate中的默认设置,只有一个'序列化' .hbm.xml映射文件中的属性。据我所知。这是一个不同的项目,我不会工作,所以我不太了解它,但可以得到源代码。无论如何,我正在开发第二个需要从数据库中读取/使用此序列化数据的项目。如何从不使用Hibernate的不同应用程序反序列化它?我想知道如何使用POJO来访问汽车类属性和数据?有什么特别的东西需要做,因为Hibernate目前是序列化的过程吗?或者我可以将返回的数据集扔到一个字节数组中并将其转换为汽车 - 前提是我的汽车类与其他java应用程序的序列化汽车类相同的源代码? TIA

2 个答案:

答案 0 :(得分:1)

您需要使用java.io.ObjectInputStream()从数据库中读取序列化的字节数据。另一个关键的事情是让类路径中的类文件(即jar文件或.class文件)与存储在数据库中的对象的相同修订版匹配。

如果您正在尝试此操作并收到错误,则应编辑当前帖子以提供代码和错误消息,或者发布新问题以处理您在反序列化数据时遇到的任何特定问题。

答案 1 :(得分:0)

我认为没有理由为什么你做的建议不起作用。

然而,这似乎是一种愚蠢而脆弱的方法。实际上,使用Java序列化/反序列化本质上是脆弱的...如果您需要更改正在序列化的类的闭包。