2016-09-01 5 views
3

Что можно сделать, если улица равна нулю? Я получу исключение в HTTP POST. NotNull проверяет, если свойство равно нулю или нет ...Весна JPA @NotNull и @JsonIgnore

@NotNull 
@Column(name = "street") 
@JsonIgnore 
private String street; 

В этом случае JsonIgnore не работает. Зачем? Я подумал, что если я использую JsonIgnore, не будет проверяться не будет.

Могу ли я перегрузить @NotNull с помощью @JsonIgnore или какой-либо другой аннотации?

+0

Не могли бы вы указать лучше? – Vitorlui

+0

Не могли бы вы описать немного больше? –

+1

В принципе, вы не должны возвращать объект для ответа HTTP POST. Если это null-hibernate, вы получите исключение, из которого вы должны обработать грациозно, а затем установив свойство null в DTO, просто удалите этот тег из ответа. Надеюсь это поможет. – MDaniyal

ответ

1

Если вы хотите, чтобы "игнорировать" нулевые значения, которые вы можете использовать:

@JsonInclude(Include.NON_NULL) 
class Foo 
{ 
    String bar; 
} 

от: How to tell Jackson to ignore a field during serialization if its value is null?

Почему JsonIgnore с NotNull не работает?

В основном аннотация JSonIgnore не имеет отношения к Not Null, потому что первым является Jackson, а другой JPA.

Я считаю, что эти темы могут помочь вам:

Serializing JPA entities to JSON using Jackson

Confusion: @NotNull vs @Column(nullable = false)

http://www.davismol.net/2015/03/10/jackson-json-difference-between-jsonignore-and-jsonignoreproperties-annotations/

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