java - 如何将对象序列化到数据库以供 Hibernate 在 Java 中读取

标签 java database hibernate serialization

我目前正在编写一个工具以插入到使用 Hibernate 的现有企业应用程序中。我的工具在安装时需要将一些值写入数据库,其中一列是设置描述符对象的序列化版本。这个对象有两个对象列表和一些原始类型。

我目前的做法是创建一个ByteArrayOutputStream和一个ObjectOutputStream,然后将ObjectOutputStream写入ByteArrayOutputStream ,然后使用 Spring 的 1SimpleJdbcTemplate1 将生成的字节数组传递到 sql 中。我目前使用这种方法的问题是,当企业工具提取我的行时,它无法使用以下内容反序列化该列:

org.springframework.orm.hibernate3.HibernateSystemException: could not deserialize; nested exception is org.hibernate.type.SerializationException: could not deserialize

我觉得我可能需要序列化内部对象,但不知道如何做到这一点并将所有内容放在一起。

最佳答案

最终解决了我自己的问题。在 hibernate API 中有一个名为 SerializationHelper 的类它有一个静态函数 serialize(Serializable obj),我可以用它来序列化我的对象,然后将它插入到数据库中。 Hibernate 随后能够在企业应用程序中读取它。

关于java - 如何将对象序列化到数据库以供 Hibernate 在 Java 中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5966039/

相关文章:

java - 如何获取 for 循环迭代内生成的值并在其外部以相同的方法使用它们?

java - 有什么解决方案可以获取 OS X 内的智能卡列表吗?

mysql - 用户反馈系统的正确数据库模型(一个有趣的案例)

hibernate - Grails Spring Security查询没有特定角色的用户

java - 两次输入时扫描仪循环不会循环

java - JProfiler 不断抛出连接错误,检测到不同版本的 JProfiler

C#数据库连接保存在DLL中调用

java - appfuse:我应该配置 jdbc 凭据两次吗?

java - 是什么导致 "java.lang.IllegalArgumentException: Can not set java.lang.Integer field"

hibernate - Grails:向自定义 HQL 查询添加排序和分页