当前位置: 首页 > 面试题库 >

如何正确地序列化休眠集合?

尚安平
2023-03-14
问题内容

我正在尝试从使用Hibernate检索的数据库中序列化对象,而我只对对象的实际数据整体感兴趣(包括循环)。

现在,我一直在使用XStream,它似乎功能强大。XStream的问题在于,它对信息过于盲目。它可以按原样识别Hibernate的PersistentCollections,并包含所有Hibernate元数据。我不想序列化那些。

因此,有没有一种合理的方法可以从PersistentCollection中提取原始Collection,并初始化对象可能指向的所有引用数据。还是可以向我推荐更好的方法?

(来自Simple的结果似乎很完美,但它不能应付Calendar这样的基本util类。它一次只能接受一个带注释的对象)


问题答案:

这里描述的解决方案对我来说效果很好:http :
//jira.codehaus.org/browse/XSTR-226

这个想法是为Hibernate集合提供定制的XStream转换器/映射器,它将从Hibernate集合中提取实际的集合并调用相应的标准转换器(用于ArrayList,HashMap等)。



 类似资料:
  • 问题内容: 我正在尝试实现一个Hibernate会话/事务拦截器,以避免Struts2中的json结果出现,但无论如何我都会得到此异常: 我的拦截器如下所示: 这是行不通的,我越来越之前甚至和 问题答案: 好的,最后我解决了将通用DAO注入(带有会话和事务)添加到genericAction的问题。这适用于带有惰性hibernatebean的JSONResults和jsp。 感谢您对“ bmorri

  • 问题内容: 有谁知道那里是否有一个能够从实体类中剥离Hibernate集合以使其可序列化的框架?我看了一下BeanLib,但它似乎只做实体的深层副本,而不允许我为实体类中的集合类型指定实现映射。BeanLib当前不适用于Hibernate 3.5和Spring 3(我确实修改了源代码并能够使其正常工作,但我不想这样做)。吉利德(Gilead)似乎是一个选择,但它似乎具有侵入性。我宁愿使用简单的深度

  • 问题内容: 尝试将Hibernate与SAP HANA内存数据库连接时遇到一些性能问题,该数据库不支持AUTO_INCREMENT(http://scn.sap.com/thread/3238906)。 因此,我将Hibernate设置为使用序列进行ID生成。 但是,当我插入大量记录(例如40000)时,Hibernate首先会生成ID。看起来像: 并且只有在生成所有ID之后,它才开始实际插入。

  • 问题内容: 我一直在尝试将对象序列化为CSV,但是该对象包含,并且不能在对象上使用。 预期样本输出 : 实际输出 : 这是我的代码 :(其中大多数是2个POJO) 我尝试的一切似乎都没有任何效果,但找不到有效的解决方案。 抱歉,我无缘无故留下的毫无意义的注释,如果您回答了代码,请随时删除它们。 问题答案: 从错误中,我想相信这与您的模式有关,该模式的列取自on 而不是值。 您可能想在其中添加,但是

  • 问题内容: 我的数据库是Oracle,我的id列值是Oracle序列,此序列由触发器执行,因此,在插入每一行之前,此触发器使用此序列来获取id值。因此,我对应该在实体类中定义哪个id策略生成感到困惑。 要么 要么 真的很困惑,有人可以阐明这个话题吗?请清楚解释。 问题答案: 我还有一个projet,其中有一个Oracle DB将数据提供给我的@Entity类。如您所说,序列通过触发器生成表PK的I

  • 问题内容: 我有以下方法,每隔几秒钟插入一大批记录。运行一段时间后,出现如下错误: 错误:通讯链接失败 从服务器成功接收到的最后一个数据包是523毫秒前。成功发送到服务器的最后一个数据包是8毫秒前。 2013年5月16日,上午9:48:30 com.mchange.v2.c3p0.stmt.GooGooStatementCache checkinStatement INFO:签入语句出现问题,被丢