我有兴趣使用Jackson引擎将EclipseLink JPA中的默认Java序列化替换为json。
是否有可以在所有设置中设置序列化引擎的属性?
我知道EclipseLink支持使用MOXY对json进行序列化,但是使用它还有其他问题。
我正在寻找一些全局设置,这些设置将使我不必将@Convert添加到数百个类中。

例如:

Class A {
  String B;
  String C;
}
@Entity
Class D {
  A a;
}


默认情况下,JPA会将字段“ a”存储为字节数组,同时使用Java序列化生成该数组。
我想将其更改为文本并将A类存储为json。

最佳答案

事实证明,可以使用SessionEventListener轻松完成此操作,该会话事件监听器将所有Java序列化转换替换为您自己的自定义基于Jackson的转换。
通过以下行初始化Jackson:

    objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);


您可以支持复杂的继承方案以及几乎所有需要的Java类(在极少数情况下,您可以添加特殊的转换)。

您可以在以下地址找到更多数据:Replacing JPA java serialization engine to JSON

09-30 14:57
查看更多