2017-04-05 2 views
0

엔티티의 필드를 선택적으로 직렬화하기 위해 JsonView를 구현하려고하지만 직렬화 된 json에는 필드가없는 빈 객체가 있습니다.빈 json 객체를 반환하는 JsonView

ViewClass :

public class AuditReportView { 
    public interface Summary {} 
} 

법인 :

@Entity 
@SequenceGenerator(name = "AUDIT_REPORT_SEQUENCE_GENERATOR", sequenceName = "EJB_AUDIT_REPORT_SEQ", initialValue = 1, allocationSize = 1) 
@Table(name = "DEVICE_AUDIT_REPORT") 
@Data 
public class AuditReport implements Serializable { 

    private static final long serialVersionUID = 1246376778314918671L; 

    @Id 
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "AUDIT_REPORT_SEQUENCE_GENERATOR") 
    @Column(name = "ID", nullable = false) 
    @JsonView(AuditReportView.Summary.class) 
    private Long id; 

    @Column(name = "DEVICE_ID", nullable = false) 
    @JsonView(AuditReportView.Summary.class) 
    private String deviceId; 

    @Column(name = "REPORT_TIMESTAMP", nullable = false) 
    @JsonView(AuditReportView.Summary.class) 
    private Calendar reportTimestamp; 

    @Column(name = "USER_ID", nullable = false) 
    @JsonView(AuditReportView.Summary.class) 
    private long userId; 

    @Column(name = "USERNAME", nullable = false) 
    @JsonView(AuditReportView.Summary.class) 
    private String username; 

    @Column(name = "START_DATE", nullable = false) 
    @JsonView(AuditReportView.Summary.class) 
    private Calendar startDate; 

    @Column(name = "END_DATE", nullable = false) 
    @JsonView(AuditReportView.Summary.class) 
    private Calendar endDate; 

    @OneToMany(mappedBy = "auditReport", fetch = FetchType.LAZY, orphanRemoval = true, cascade={CascadeType.ALL}) 
    private Set<AuditEntry> auditEntries = new HashSet<AuditEntry>(); 
} 

컨트롤러 : 우편 배달부에서

@JsonView(AuditReportView.Summary.class) 
    @RequestMapping(method = RequestMethod.GET, value = "auditReportSummary") 
    public @ResponseBody ResponseEntity<?> getAuditReportSummary() 
    { 
     final List<AuditReport> auditReports = auditDAO.getAuditReportSummary(); 

     return new ResponseEntity<>(auditReports, HttpStatus.OK); 
    } 

JSON :

[ 
    {}, 
    {}, 
    {} 
] 
다음은 내 코드입니다

데이터베이스에는 3 개의 결과 만 있으며 디버깅 할 때 데이터베이스가 확실히 꺼내지기 때문에 멤버가 직렬화되지 않습니다. 저는 Spring 4.3.7과 Jackson 2.8.7을 사용하고 있습니다. 무엇이 잘못되었거나 문제를 디버깅하기 시작해야하는지에 대한 아이디어가 있습니까?

감사

+0

같은 문제가 있습니다. 이것에 관한 어떤 소식이라도? –

답변

0

당신은 속성에 대한 getter 및 setter 메소드를 작성해야합니다. 나는 그것을했고 그것은 효과가 있었다.