2017-01-20 7 views
7

MY POJO JSON 응답에서 모든 필드를 전송하지 않음 다음과 같이 JSON에서

public org.springframework.http.ResponseEntity<?> getLinkedEmails(@PathVariable(value = "userId") Integer zepoUserId) { 


     try { 
      List<UserLinkedEmail> linkedEmails = userService.getLinkedEmails(zepoUserId); 


      //linkedEmails till this point has all 4 fields 

      return new ResponseEntity<List<UserLinkedEmail>>(linkedEmails, HttpStatus.OK); 

     } catch (Exception e) { 
      // 
     } 

응답은 다음과 같습니다

[ 
    { 
    "status": false, 
    "preferredFlag": true 
    }, 
    { 
    "status": true, 
    "preferredFlag": false 
    }, 
    { 
    "status": true, 
    "preferredFlag": false 
    } 
] 

Spring-Data JPA가 리포지토리에서 전체 개체를 반환하지만 다른 두 필드 즉 userId와 linkedEmail이 응답으로 표시되지 않는 이유는 무엇입니까?

+0

@ScaryWombat Lombok이 그렇게합니다. 따라서 명시적인 getter setters는 없지만 POJO에서'@ Data '를 제거하고 수동 게터 설정자를 썼습니다. 그러나 결과는 여전히 동일합니다 –

+0

미안하지만 롬복 태그에 주목하지 마라. –

답변

5

기본적으로 스프링 데이터는 더 이상 @Id 속성을 JSON에 마샬링하지 않습니다.

이 ID를 노출하여 달성 될 수있다 - 내가 대신 JSON에 엔티티를 변환하는 중간 응답 클래스를 가지고 제안 자세한 explanation- id not marshalled to JSON

여기 Spring Rest

유사 게시물을 확인하시기 바랍니다.

+0

감사합니다.이 솔루션을 생각해보십시오. –

+0

또한 Entity를 JSON으로 변환하는 대신 Intermediate Response Class를 사용하는 것이 좋습니다. –