аннотации jackson + lombok

имеем класс, данные ложатся в мапу.

@Getter
@ToString
@Builder
//@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
//@JsonIgnoreProperties(value = {"firstName", "lastName"})
public class User {

//    @JsonProperty("id")
    private final UUID userUid;

    @JsonIgnore
    private final String firstName;
    @JsonIgnore
    private final String lastName;
    private final Gender gender;
    private final Integer age;
    private final String email;

    public enum Gender {
        MALE, FEMALE
    }

    public String getFullName() {
        return this.firstName + " " + this.lastName;
    }

    public int getDateOfBirth() {
        return LocalDate.now().minusYears(age).getYear();
    }

    public User(@JsonProperty("userUid") UUID userUid
            , @JsonProperty("firstName") String firstName
            , @JsonProperty("lastName") String lastName
            , @JsonProperty("gender") Gender gender
            , @JsonProperty("age") Integer age
            , @JsonProperty("email") String email) {
        this.userUid = userUid;
        this.firstName = firstName;
        this.lastName = lastName;
        this.gender = gender;
        this.age = age;
        this.email = email;
    }

    public static User newUser(UUID userUid, User user) {
        return User.builder()
                .userUid(userUid)
                .firstName(user.getFirstName())
                .lastName(user.getLastName())
                .gender(user.getGender())
                .age(user.getAge())
                .email(user.email)
                .build();
    }
}

аннотации JsonIgnore над полем не срабатывают, поля отображаются в респонсе.
данные скрываются когда аннотирую класс JsonIgnoreProperties или добавлением аннотаций над геттером.
а JsonProperty над полем вообще 500 ошибку выбрасывает...
получается jackson аннотации с ломбоком не срабатавыют, и надо над сеттерами прописывать, или я что-то не так делаю?


Ответы (0 шт):