Как связать поле массива в фреймворке Java Spring?

Привет, это моя модель, которая включает в себя простое поле и набор OrderModel.

public class ActiveRequsetModel {
 private Long id;
 private String applicatorDescription;
 private Customer customer;
 private Set<OrderModel> odersModel = new HashSet<>();
}

и это мой метод в моем контроллере

@RequestMapping(value = "/register-request", method = RequestMethod.POST, consumes = "application/json")
    @ResponseBody
    public ResponseEntity<String> registerActiveRequest(@RequestBody ActiveRequsetModel activeRequsetModel){

        customerService.registerActiveRequest(activeRequsetModel);

        return new ResponseEntity<>("Request registered.", HttpStatus.OK);
    }

и это то, что я получаю со стороны клиента, поскольку вы видите, что оно включает описание аппликатора, объект клиента и список модели заказа с ключевой моделью заказов.

{
    "applicatorDescription" : "quick please",
    "customer" : {
       "id" : 1
    },
"ordersModel" : 
[
    {
        "transfereeName" : "Alex",
        "address" : "home",
        "countOrSize" : 12.5,
        "derap" : 4,
        "description" : "descriptionnnnn",
        "kalite" : {
            "id" : 1
        },
        "product" : {
            "id" : 1
        }
    }
]

}

Когда я получаю запрос, пружина может связать клиента и описание аппликатора, но не может связать модель заказов. Что я должен делать?

Убедитесь, что вы не делаете орфографических ошибок: ActiveRequsetModel -> ActiveRequestModel, oderModel -> ordersModel.

Jesper 11.03.2019 13:00
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
90
1

Ответы 1

Ваш класс модели находится здесь:

public class ActiveRequsetModel {
 private Long id;
 private String applicatorDescription;
 private Customer customer;
 private Set<OrderModel> oderModel = new HashSet<>();
}

Изменить private Set<OrderModel> oderModel = new HashSet<>(); как

private List<OrderModel> oderModel

Кроме того, класс OrderModel должен быть независимым классом. Если OrderModel является внутренним классом, jacson не может связать запрос с классом.

Для получения дополнительной информации посетите эта тема

Надеюсь, что это поможет вам

Это не работает, но я изменил его на этот частный ArrayList<OrderModel> ordersModel; и это работает.

Farshad Shahsavari 11.03.2019 13:53

Спасибо, вы натолкнули меня на мысль сделать это :)

Farshad Shahsavari 11.03.2019 13:53

Рад слышать, что мой ответ помогает вам. Если этот ответ поможет вам, примите его как лучший ответ и откажитесь от голосования.

Md. Sajedul Karim 11.03.2019 17:03

Другие вопросы по теме