0
null 값을 전달할 때 열거 형의 기본값을 설정할 수 있습니까? JACKON가 null로 역 직렬화,하지만 난 뭔가 이상한 통과 할 때 - -잭슨 비 직렬화 열거 형 값
public enum Something {
@JsonEnumDefaultValue
A(new BigDecimal(123)),
B(new BigDecimal(555)),
C(new BigDecimal(21312));
private BigDecimal value;
Something(BigDecimal value) {
this.value = value;
}
public BigDecimal getValue() {
return value;
}
}
내가 null 값을 통과 할 때 나는 나의 DTO에 필드로이 열거를해야 함은 기본 값을 설정합니다. 내 잭슨의 설정은 여기에 있습니다 :
@Bean
public ObjectMapper mapper() {
val mapper = new ObjectMapper();
return mapper.enable(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE);
}
DTO 클래스 :
public class Dto {
private Something something;
private Smth smth;
private String name;
}
컨트롤러 :
당신은 클래스 레벨에서 기본값을 제공하기 위해 다음 null 값을 위해 작동 할 필요가@PostMapping
public ResponseEntity<Long> saveEntity(@RequestBody Dto dto) {
return ResponseEntity.ok(repository.save(
MyEntity.builder()
.name(dto.getName())
.something(dto.getSomething())
.smth(dto.getSmth())
.build())
.getId());
}
예, 그 내가 롬복 @AllArgsConstructor을 제거 할 때, 나를 위해 일했다. Jackson이 null 값을 사용하여이를 호출하고 필드 init이 실패했습니다. – Radik