Выпадающий список из java-объектов

Есть некоторый сервер, который выполняет коммуникацию с базой данных. В базе данных хранится информация о продуктах (Product) и производителях (Producer). Также есть некоторый сервер-клиент, на котором реализуется UI.
Возникла проблема с формой для добавления новых продуктов: реализовал её таким образом, что производителя можно выбрать из выпадающего списка, но этот список возвращает строку, вместо java-объекта. Как следствие, на этапе создания продукта получаю ошибку конвертации.

Есть теоретический вариант решения этой проблемы: передавать в форму также объект, который выполняет запрос на сервер(для получения данных из БД), далее каким-то образом записать id выбранного из списка производителя в отдельную переменную, и делать запрос непосредственно в UI-форме.

Вопрос:

  1. Как это реализовать?
  2. Быть может, есть более простые решения такой проблемы?

Сущность Product:

public class Product {
    private Long id;
    private String title;
    private BigDecimal cost;
    private LocalDate shelfLife;
    private Producer producer;

    //геттеры, геттеры, конструктор
}

Сущность Producer:

public class Producer {
    private Long id;
    private String name;
    private List<Contact> contacts;

    // геттеры, сеттеры, конструктор
}

На всякий случай сущность Contact (которая в сущности Producer):

public class Contact {
    private Long id;
    private Long number;

    // геттеры, сеттеры, конструктор
}

Код UI-формы:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>

<form:form action="saveProduct" modelAttribute="product">

    Title <form:input path="title"/>
    <form:errors path="title"/>
    <br><br>
    Cost <form:input path="cost"/>
    <br><br>
    Shelf life <form:input path="shelfLife"/>
    <br><br>

    Producer <form:select path="producer">   // <- часть, реализующая выпадающий список
    <form:options items="${allProducers}"/>
    </form:select>


    <br><br>

    <input type="submit" value="OK">

</form:form>

</html>

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