仅为一个字段编写 Mongo 转换器
2022-09-03 02:40:00
我有一个简单的POJO,里面有一个很长的字段,这实际上是一个时间戳。
此字段必须位于由 ISODate 表示的 mongo 数据库中。
我可以写一个转换器,因为整个Pojo,但由于它只是25个字段中的一个,所以没有多大意义,当一个字段会改变或添加另一个字段时,这是另一个错误的地方。
有没有办法调用默认转换器服务,并在默认转换服务之后更改其他2个,这将对性能产生很大影响。或者是否有要覆盖的默认转换器接口?
这里的最佳实践是什么?
也许有一个注释,我可以应用于此字段?
是的,我也可以写一个LongToDate转换器,但这会影响所有的POJO,而不仅仅是这个。
下面是示例 POJO:
public class Person {
private long someTimestamp;
//getters and setters
}
如果没有转换器,这将看起来像这样:
{
"_id" : ObjectId("52ae8eede4b0249cde22059e"),
"someTimestamp" : NumberLong(1392714950940)
}
结果应该是这样的:
{
"_id" : ObjectId("52ae8eede4b0249cde22059e"),
"someTimestamp" : ISODate("2013-12-23T23:00:00.000Z")
}
当这样的时间戳值位于嵌套文档中时,desribed 问题变得更加复杂:
{
"_id" : ObjectId("52ae8eede4b0249cde22059e"),
"items" : [
"someTimestamp" : NumberLong(1392714950940)
]
}
POJO:
public class Person {
private Collection<OtherPojoThatHoldsTimestamps> items;
//getters and setters
}
也许我应该提到我正在使用Spring来实现这一目标。(http://projects.spring.io/spring-data-mongodb/)