2017-11-07 14 views
1

私は@BeanobjectMapperを定義し、このような日付の書式設定: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; 
} 
+0

'ResponseEntity'と' PagedResources'とは何ですか? – talex

+0

@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

答えて

0

使用しているDateクラスには、次の種類のものであるべきであることを確認してください:

import java.util.Date; 

それはJava.sql.Dateのなら、それはあなたのような問題が直面している原因となります。 これで問題が解決されることを願っております。

+0

残念ながら、それはそれではありません。私はそれをチェックし、どこでも 'java.util.Date' – user7337867

関連する問題