2015-02-24 3 views
0

Я использую спящий режим для сохранения сущности в приложении вместе с весной mvc. У меня есть несколько полей @Transient в сущности в приложении, это способ автоматического определения парсера Json игнорировать все @Transient аннотированные поля в объекте без использования @JsonIgnore или @JsonIgnorePropertiesИгнорировать поля @Transient объекта автоматически во время сериализации json

+0

'@ Transient' это указать поле не стойкие. '@ JsonIgnore' означает, что поле должно игнорироваться процессором сериализации/десериализации, они имеют очень разные значения. – ikumen

+0

Я знаю это, но я прошу о возможности игнорировать все переходные поля автоматически, не добавляя @JsonIgnore к файлам –

+0

Почему вы не хотите, чтобы пользователь @JsonIgnore? Есть ли веские основания для этого? –

ответ

0

@Transient указывает, что поле не является постоянным. @JsonIgnore указывает, что поле должно игнорироваться процессором сериализации/десериализации, они имеют очень разные значения.

Один из вариантов имеет серийную/десериализацию процессора Json из доступных полей (vs getter/seters), а затем пометьте поля @Transient дополнительным ключевым словом transient. Если у вас есть получатели/сеттеры, вам также необходимо будет добавить соответствующие правила видимости. Например, это приведет к сериализации всех полей, не помеченных transient.

@JsonAutoDetect(fieldVisibility=Visibility.ANY, getterVisibility=Visibility.NONE, setterVisibility = Visibility.NONE) 
+0

Я пробовал это, но это скрывает все, кроме переходного поля. –

+0

Извините, было прервано, так как я переписывал ответ. Я забыл включить fieldVisibility = Visibility.ANY – ikumen

0

Я нашел лучший способ вместо использования @jsonignore к полям в объекте на использовании класса ребенок JsonBackreference и на родительском использовании JsonManagedReference For more information go through this blog post

Смежные вопросы