Spring Data Couchbase: как переименовать поля из вложенных POJO?

Док говорит, что @Field аннотация может использоваться для переименования поля в объекте. А как насчет полей из вложенных POJO, которые технически сами не являются сущностями? Рассмотрим следующий гипотетический пример.

@Document
public class Person {
    @Id
    private String ssn;
    @Field
    private String name;
    @Field
    private Address address;

    static class Address {
        // how to rename this field to line1?
        private String street;
    }
}

1 ответ

Решение

Чтобы конкретно ответить на ваш вопрос, вы можете использовать @Field("line1") за street в Address,

У меня есть что-то подобное в моем проекте, и он работает нормально (см. descriptions)

1 класс

@Document
@JsonInclude(JsonInclude.Include.NON_NULL)
public class HotelInfo {
    @Field("hotel_type") @JsonProperty("hotel_type")
    public String hotelType;
    @Field @JsonProperty("images")
    public List<Image> images = new ArrayList<Image>();
    @Field @JsonProperty("regions")
    public List<String> regions = new ArrayList<String>();
    @Field @JsonProperty("themes")
    public List<String> themes = new ArrayList<String>();
    @Field @JsonProperty("facilities")
    public List<String> facilities;
    @Field @JsonProperty("descriptions")
    public Descriptions descriptions;
}

Класс 2

@JsonInclude(JsonInclude.Include.NON_NULL)
public class Descriptions {
    @Field("hotel_information") @JsonProperty("hotel_information")
    public String hotelInformation;
}
Другие вопросы по тегам