JPA关系导致我的JSon对象太大了:JSon可以忽略某些JPA属性吗?

时间:2013-03-19 15:04:48

标签: json hibernate jpa spring-mvc

我有一个JPA实体,如下所示:

@Entity
@DynamicUpdate
public class Message {

    @NotNull
    @ManyToOne(fetch = FetchType.LAZY)
    private Member sender;

    @NotNull
    @ManyToOne(fetch = FetchType.LAZY)
    private Member recipient;

    @NotNull
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(pattern = "dd/MM/yyyy HH:mm:ss")
    private Date sendDate;

    private boolean messageRead;

    @NotNull
    @Size(min = 5, max = 500)
    @Column(length = 500)
    private String message;

    //Getter/Setters omitted

}

从Spring MVC控制器,我将一个JSon数组/集合返回给浏览器,如下所示:

List<Message>

我遇到的问题是Message的每个实例都有Member sender属性和Member recipient属性,而Member类本身有很多关系:集合等。

浏览器最终被一个巨大的JSon对象/关系图堵塞。

我想要做的就是忽略JSon中的senderrecipient属性(无论如何,这些属性都在java层中设置)。这可能吗?

如果无法做到这一点,为了避免上述问题,建议的做法是什么?

1 个答案:

答案 0 :(得分:3)

您是否尝试使用@JsonIgnoreProperties注释该类?

@JsonIgnoreProperties({"sender", "recipient"})
public class Message {