@Jsonignoreproperties использование для известных и неизвестных свойств

моя текущая аннотация для игнорирования известных свойств для сущности JPA:

@JsonIgnoreProperties({"hibernateLazyInitializer", "handler","created","updated","createdBy","lastUpdatedBy"})

в дополнение к игнорированию этих свойств класса я также хотел бы игнорировать любые неизвестные свойства, которые получает сервер. Я знаю единственный способ игнорировать неизвестные свойства следующей аннотацией:

@JsonIgnoreProperties(ignoreUnknown=true)

но не уверен, как добавить это к моей текущей аннотации, приведенной выше. Я пробовал несколько методов ОС, но ни один не работает, и я не мог найти пример online для этого сценария.

любой пример или приводит к документации также поможет.

1 ответов


короткий ответ:

Set ignoreUnknown to true и определите имена свойств, которые нужно игнорировать в value элемент:

@JsonIgnoreProperties(ignoreUnknown = true, 
                      value = {"hibernateLazyInitializer", "handler", "created"})

как это работает?

посмотрите на эту цитату из документация (выделение мое):

в простейшем виде аннотация выглядит следующим образом:

@Entity

символ знака at (@) указывает компилятору, что речь идет об аннотации. В следующем примере имя Примечания Override:

@Override
void mySuperMethod() { ... }

аннотация может включать в себя элементов, который может быть назван или неназван, и есть значения для этих элементов:

@Author(name = "Benjamin Franklin", date = "3/27/2003")
class MyClass() { ... }

или

@SuppressWarnings(value = "unchecked")
void myMethod() { ... }

если есть только один элемент с именем value, тогда имя можно опустить, например:

@SuppressWarnings("unchecked")
void myMethod() { ... }

другой способ обрабатывать неизвестные свойства

чтобы игнорировать неизвестные свойства, вы также можете сделать:

ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);