Переопределить аннотацию @JsonIgnore для некоторых контроллеров. Джексон. весна

Мне нужно сериализовать поле фотографий только для прямых запросов к сущности. Но когда пользователь запрашивает все объекты MediaHolders, сериализуйте только короткие данные с помощью photoSize.

Я использую Kotlin, Jackson, Spring и Hibernate. Я пробовал:

  • @JsonView на contoller. Не работает. JsonView не переопределяет поведение @JsonIgnore. Или мне нужно будет аннотировать все поля в базовом классе PersonalDomainObject и всех контроллерах, что не подходит для меня.
  • Пользовательский JsonFilter, но то же самое, он не видит игнорировать поля. И я не могу добавить разные фильтры на разных контроллерах.

Может быть, мне что-то не хватает, но я думаю, что это очень обычная задача в оптимизации. Большое спасибо за любое предложение!

@JsonIgnoreProperties("createdAt", "updatedAt", "owner", "hibernateLazyInitializer", "handler") open class MediaHolder : PersonalDomainObject() { @OneToMany(cascade = arrayOf(CascadeType.PERSIST, CascadeType.REMOVE), mappedBy = "mediaHolder") @LazyCollection(LazyCollectionOption.EXTRA) var photos:MutableList<Photo> = mutableListOf() val photosSize: Int get() = photos.size } 

Intereting Posts
Как правильно реализовать lateinit с пользовательскими объектами класса для использования в onCreate () в android, избегая ошибки Property getter или setter expected Получить пару цифр из списка номеров в Котлин Котлин не встраивает некоторые тела Java позволяет получить доступ к базовой переменной Kotlin через ее дочерний элемент, но не Kotlin, почему? Функции расширения LocalDateTime и интеллектуальное литье Kotlin: Может ли абстрактный суперкласс иметь абстрактный конструктор? Определение оси масштабирования ScaleAnimation Проблема с Android Studio и Main Activity.kt, ожидающая объявления участника Как вы скрываете параметры в шагах пользовательской сборки в Kotlin для TeamCity? Обработчик аннотации Kotlin-Kapt не работает с maven где поместите этот код в kotlin / firebasedatabase.getinstance (). setpersistenceenabled (true); Когда именно ключевое слово оператора требуется в Котлине? Как сохранить логотип над рушащейся панелью инструментов Передача лямбда вместо интерфейса Знак доллара в строках