Если у меня есть такой класс:
@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
}
Как заставить Спрингса и Джексона выбрать все поля (и только те поля), которые отмечены как @ManyToOne(fetch = FetchType.LAZY)
и @JsonView(AdminView.View.class)
перед сериализацией JSON обратно к клиенту, если клиент нажмет на контроллер @GetMapping
, который также помечен аннотацией @JsonView(AdminView.View.class)
?
Я не хочу использовать Hibernate5Module.Feature.FORCE_LAZY_LOADING
, потому что это просто вызовет загрузкукаждое ленивое поле в каждом запросе, даже если оно не принадлежит соответствующему @JsonView
.Могу ли я сделать эту принудительную загрузку более разумной, чтобы просто принудительно загружать поля, помеченные соответствующими @JsonView
?