2017-04-05 531 views
0

我想實現一個JsonView有選擇地從實體序列化字段,但序列化的JSON有空字段沒有字段。下面是我的代碼:JsonView返回空JSON對象

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方法。我做到了,它工作。