【发布时间】:2013-06-14 12:44:14
【问题描述】:
我目前正在尝试序列化我之前通过 Hibernate 加载的数据。为了恢复类型信息,我启用了这样的默认类型:
objectMapper.enableDefaultTyping(DefaultTyping.NON_CONCRETE_AND_ARRAYS,As.PROPERTY);
我还通过此注释向我的实体添加了身份信息:
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@id")
但是,当我反序列化我拥有的 @OneToMany-relations 时,反序列化失败,因为 PersistentBag 此时没有会话。因为我的程序在没有容器的情况下运行,所以我无法轻松解决此问题。
我也知道杰克逊有这个hibernate-datatype模块,但这并不能解决问题(我猜这个模块主要用于尊重LAZY_LOADING-hibernate-property)。
所以我解决这个问题的想法是不序列化PersistentBag,而是序列化ArrayList。有没有一种简单的方法可以做到这一点,还是我必须编写自己的序列化程序(我尝试过但没有成功)?
【问题讨论】: