使用spring将持久化实体映射到mongo

时间:2012-09-12 17:10:45

标签: spring mongodb mapping entities

在春季文档中谈论自定义类型映射 Reference

使用@TypeAlias和TypeInformationMapper ..但我找不到任何实际例子 有人可以参考吗?

定义 MappingMongoConverter 时,它与实体持久性有关吗?

谢谢

1 个答案:

答案 0 :(得分:0)

当您使用spring-data持久保存实体时,创建的mongo文档将具有_class属性,该属性存储类的完全限定名称。 @TypeAlias用于自定义_class属性中保存的值。

spring reference中的这个示例显示了如何将_class属性添加到mongo文档中。如果附加@TypeAlias(“sample”),则_class属性将具有值“sample”而不是完全限定名称。

public class Sample {
  Contact value;
}

public abstract class Contact { … }

public class Person extends Contact { … }

Sample sample = new Sample();
sample.value = new Person();

mongoTemplate.save(sample);

{ "_class" : "com.acme.Sample",
  "value" : { "_class" : "com.acme.Person" }
}