如果用@JsonView注释,如何强制Jackson(与Spring一起)包括FetchType.LAZY字段?

时间:2018-12-13 18:20:21

标签: spring hibernate jackson spring-restcontroller

如果我有这样的课程:

@Entity
@Table(name = "game")
public class Game {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "player_id")
    @JsonView(AdminView.View.class)
    private Player player;

    //other fields

}

在客户端将JSON序列化回客户端之前,如何强制Spring和Jackson提取所有用@ManyToOne(fetch = FetchType.LAZY)@JsonView(AdminView.View.class)注释的字段(并且仅注释这些字段)。 @GetMapping控制器还标有@JsonView(AdminView.View.class)注释?

我不想使用Hibernate5Module.Feature.FORCE_LAZY_LOADING,因为这将强制在每个请求上加载每个惰性字段,即使它不属于相应的@JsonView也是如此。我可以使这种强制加载更加智能,仅强制使用匹配的@JsonView进行注释的加载字段吗?

0 个答案:

没有答案