У меня есть абстрактный класс, описывающий монго-документ. Могут быть разные реализации этого класса, которые должны переопределять абстрактный метод. Вот упрощенный пример:
@Document
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)
public abstract class Entity {
@Id
private ObjectId id;
abstract String getSomething();
}
Я хочу, чтобы getSomething()
было записано в документе как строковое поле. Но Я не хочу читать это обратно .
Я пытался использовать аннотацию @AccessType
:
@AccessType(AccessType.Type.PROPERTY)
abstract String getSomething();
Но когда я читаюэтот документ из дб, пружины кидает UnsupportedOperationException: No accessor to set property
. Он пытается найти установщик для этого поля, но я не хочу определять установщик для него - метод может возвращать вычисленное значение, и не должно быть возможности его изменить. Хотя пустой установщик мог бы помочь, это больше похоже на обходной путь, и я бы постарался избежать этого.
Так что мне интересно, есть ли способ пропустить это конкретное свойство при чтении из БД? Что-то противоположное аннотации @Transient
. Или аналогично @JsonIgnore
в библиотеке Джексона.