私は@Bean
objectMapper
を定義し、このような日付の書式設定:PagedResources /埋め込みオブジェクトで日付を逆シリアル化します。ジャクソン春
ObjectMapper mapper = new ObjectMapper();
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm"));
をおよび方法は、通常のResponseEntity<SomeDTO>
を返すとき、それは動作します。 サンプルJSON応答:
{
"id": 888,
"createdDate": "2017-11-06 13:50",
}
しかし、私のコントローラメソッドが返す:ResponseEntity<PagedResources<SomeDTOResponse>>
、その後、createdDate
は、デシリアライズと私は取得されていません。
{
"_embedded": {
"someEntityResponseList": [
{
"id": 877,
"createdDate": 1509877100151
}
]
},
"_links": {
...
},
"page": {
...
}
}
マイコントローラ:
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<PagedResources<SomeDTOResponse>> getAllActiveAuctionsForLoggedUser(
Pageable pageable, PagedResourcesAssembler assembler) {
Page<SomeEntity> someEntites = someEntityService.getAllSomeEntities(pageable);
Page<SomeDTOResponse> response = assembler.toResource(someEntites.map(entity -> mapToResponse(entity))
return new ResponseEntity<>(response, HttpStatus.OK);
}
ときI最後の行にブレークポイントを入れるreturn...
、オブジェクトresponse
には次のものが含まれます。createdDate = {[email protected]} "2017-11-05 10:54:14.345"
。 mapToResponse()
それは私のカスタム方法ですが、問題ではありません。 正しい結果を得て、どのように非直列化を修正できますか?
私の他のクラス:SomeDtoResponse
およびSomeEntity
。
@Data
public class SomeDtoResponse {
private Long id;
private Date createdDate;
}
@Entity
@Table(name = "SOME_ENTITY")
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class SomeEntity {
@Id
@GeneratedValue
@Column(name = "SOME_ENTITY_ID")
private Long id;
@NotNull
private Date createdDate;
}
'ResponseEntity'と' PagedResources'とは何ですか? – talex
@talex、 'ResponseEntity':https://docs.spring.io/spring/docs/4.0.2.RELEASE/javadoc-api/org/springframework/http/ResponseEntity.htmlおよび' PagedResources':https:// docs.spring.io/spring-hateoas/docs/current/api/org/springframework/hateoas/PagedResources.html – user7337867