spring-data-mongodb相当于杰克逊的@JsonUnwrapped

时间:2017-03-02 00:06:49

标签: mongodb spring-data-mongodb

我想使用合成模式来重用类的公共部分,就像我在Jackson中使用@JsonUnwrapped一样,而不在mongodb文档中添加额外级别的结构,例如:

class A {
  int x; int y;
}
class B { 
  @JsonUnwrapped
  A a;
}
class C { 
  @JsonUnwrapped
  A a;
}

因此,当B或C存储在mongodb中时,它看起来像:

{ x:123, y:456 }

而不是

{ a: { _class:"A", x:123, y:456 } }

不幸的是,我在spring-data-mongodb annotationscore spring data annotations找不到合适的注释。有人存在吗?我知道这必然会使A子结构的多态性变得不可能。

1 个答案:

答案 0 :(得分:1)

Spring Data MongoDB不评估Jackson注释。要实现这一目标,最好的机会就是提供一个适合您需求的CustomConverter

不过,有一张公开票证(DATAMONGO-1902)支持将嵌套结构展平到您可能会投票的父文档中/从中读取嵌套结构。