Использование OneToMany для отображения спящего режима в Spring Framework - PullRequest
0 голосов
/ 23 сентября 2019

Я новичок в Spring, пожалуйста, помогите мне .. У меня есть две сущности Customer и CustomerHobbies, они правильно отображаются в соответствии с Hibernate (никаких проблем в этом нет), при сохранении объекта customer в методе saveCustomer это приводит к ужаснымисключение, которое я полностью понимаю:

Не удалось преобразовать значение свойства типа java.lang.String [] в требуемый тип java.util.List для свойства listOfHobbies;вложенным исключением является java.lang.IllegalStateException: невозможно преобразовать значение типа java.lang.String в требуемый тип com.luv2code.springdemo.entity.CustomerHobbies для свойства listOfHobbies [0]: не найдено подходящих редакторов или стратегии преобразования найдено

мой вопрос как это побороть ??Код JSP-страницы:

<form:select path="listOfHobbies" multiple="true">              
                <form:option value="Cricket" label="Cricket"/>
                <form:option value="Hockey" label="hockey"/>
                <form:option value="Snooker" label="Snooker"/>
            </form:select>

Код контроллера:

@RequestMapping("/saveCustomer")
    public String saveCustomer(@Valid @ModelAttribute("addCustomer") Customer theCustomer,
            BindingResult theBindingResult, Model CustomerModel) {

        if (theBindingResult.hasErrors()) {
            System.out.println("Has errors :"+theBindingResult);
            // getting the customers from customerService instead
            List<Customer> custList = customerService.getCustomers();

            // add departments for select box
            LinkedHashMap<Integer,String> hash= customerService.getDeptForSelectBox();
            CustomerModel.addAttribute("departmentList", hash);

            // add those customers to the Modal
            CustomerModel.addAttribute("customerList", custList);
            return "manage-customers";
        } 
        else {
            System.out.println("No errors");
            // save the customer to DB
            System.out.println("Customer hobbies :"+theCustomer.getListOfHobbies().size());
            customerService.saveCustomer(theCustomer);
            return "redirect:/customer/manageCustomer"; 
            // cz we are redirecting to controller of jsp view page and not jsp page itself
        }

    }

Код объекта клиента:

@OneToMany(mappedBy="customer",cascade=CascadeType.ALL)
    private List<CustomerHobbies> listOfHobbies= new ArrayList<CustomerHobbies>();

Код объекта CustomerHobbies:

@ManyToOne
    @JoinColumn(name="customerId")
    private Customer customer;

Скриншот интерфейса пользователя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...