【发布时间】:2010-07-06 03:05:06
【问题描述】:
有谁知道是否有一个框架能够从实体类中剥离 Hibernate 集合以使其可序列化?我查看了 BeanLib,但它似乎只对实体进行深度复制,而不允许我为实体类中的集合类型指定实现映射。 BeanLib 目前不适用于 Hibernate 3.5 和 Spring 3(我确实修改了源代码并且能够让它工作,但我宁愿不这样做)。吉利德似乎是一种选择,但它似乎颇具侵略性。我宁愿使用一个简单的深拷贝框架,也不愿将另一个框架编织到我的实体和 DAO 类中。
我已经尝试将 XStream 与自定义 CollectionConverter 和 MapConverter 一起使用并成功,但是……它是 XStream,我真的不想将我的实体转换为 XML,然后从内存中的 XML 转换回来。这是一个糟糕的解决方案。
我是否只需要创建自己的框架,其行为就像 XStream 一样减去所有 XML 内容?
我的技术栈是:GWT 2.0.4、GWT-Dispatch、Spring 3.0.1 和 Hibernate 3.5.2。
我的 XStream 解决方案:
XStream xstream = new XStream();
xstream.addDefaultImplementation(java.util.ArrayList.class, org.hibernate.collection.PersistentList.class);
xstream.addDefaultImplementation(java.util.HashMap.class, org.hibernate.collection.PersistentMap.class);
xstream.addDefaultImplementation(java.util.HashSet.class, org.hibernate.collection.PersistentSet.class);
xstream.addDefaultImplementation(java.util.ArrayList.class, org.hibernate.collection.PersistentBag.class);
Mapper mapper = xstream.getMapper();
xstream.registerConverter(new HibernateCollectionConverter(mapper));
xstream.registerConverter(new HibernateMapConverter(mapper));
String xml = xstream.toXML(entity);
Entity newEntity = (Entity) xstream.fromXML(xml);
【问题讨论】:
标签: java hibernate serialization entity