【问题标题】:Customize Spring Data Rest projection自定义 Spring Data Rest 投影
【发布时间】:2018-04-18 23:04:27
【问题描述】:

我有一个带有Date 字段的实体:

@NotNull
@Temporal(TemporalType.TIMESTAMP) // this annotation impacts on result
@JsonFormat(pattern = DATE_FORMAT)
@Column(name = "my_time", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
private Date myTime;

我有一个字段的投影:

@DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
String getMyTime();

这是我的java代码:

@Autowired
private ProjectionFactory projectionFactory;

....
public PagedResources<Resource<MyEntityProjection>> transform(final Page<MyEntity> page) {
    return assembler.toResource(page, entity -> {
        final MyEntityProjection projected = projectionFactory.createProjection(MyEntityProjection.class, entity);
        return new Resource<>(projected, <some links>);
    });
}

当我尝试在 java 代码中为此实体创建投影时,我收到以下 JSON 格式:

"myTime": "2017-07-27"

如何修复它以接收yyyy-MM-dd'T'HH:mm:ss.SSSZ 格式的日期?

【问题讨论】:

    标签: java spring jackson spring-data-rest spring-hateoas


    【解决方案1】:

    终于找到了解决办法:

    只需在 Projection 界面中为您的字段添加注释即可;

    import com.fasterxml.jackson.annotation.JsonFormat;
    
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd@HH:mm:ss.SSSZ")
    Date getMyDate();
    

    【讨论】:

      猜你喜欢
      • 2017-07-27
      • 2016-01-20
      • 2018-10-07
      • 1970-01-01
      • 1970-01-01
      • 2015-05-01
      • 2019-01-27
      • 1970-01-01
      • 2018-03-05
      相关资源
      最近更新 更多