MappingException (обнаружено неоднозначное сопоставление полей) с данными Spring на унаследованном поле - PullRequest
1 голос
/ 19 апреля 2019

Следующие результаты приводят к исключению MappingException. Нужно ли менять свой дизайн?

    public class Foo extends Bar {

        // if class == Foo do not send this over the wire
        @JsonProperty(access = Access.WRITE_ONLY)
        public List<X> myList;

    }

    public class Bar {

        // if class == Bar send this over the wire
        public List<X> myList;


    public void methodsThatAccessMyList() {
       // multiple methods exists in here accessing myList
       // also, other classes exist extending bar, 
       //so moving these to the children will result in duplicate code
 }
    }

Однако мне нужно свойство json для дочернего класса, чтобы предотвратить перемещение дочерним классом этого поля по проводам.

Что мне нужно изменить, чтобы предотвратить неоднозначное отображение?

org.springframework.data.mapping.MappingException: неоднозначное поле сопоставление обнаружено! Оба защищали java.util.List ... и @ Com.fasterxml.jackson.annotation.JsonProperty (индекс = -1, access = WRITE_ONLY, value = "", defaultValue = "", обязательный = false) защищен java.util.List ... сопоставить с тем же именем поля ...! Устранить неоднозначность с помощью @ Полевая аннотация!

1 Ответ

0 голосов
/ 20 апреля 2019

Оказывается, вы можете поставить JsonProperty на геттер поля, он будет работать как положено. Таким образом, вам не нужно переопределять само поле в расширяющем классе.

...