Spring Boot Thyemeleaf Select Выберите значение раскрывающегося списка - java.lang.NumberFormatException - PullRequest
0 голосов
/ 20 мая 2018

У меня есть раскрывающийся список сущности " BusinessPartner ".

У меня есть все идентификаторы моих сущностей в виде строки и настроены " org.hibernate.id.UUIDGenerator «чтобы добавить префикс относительного события в мой идентификатор, например:« BPID_04a3e35b-12b3-447f-a982-338739e537f1 »

я получаю следующее исключение, когда пытаюсь перейти на страницу, содержащуюраскрывающийся список сущности "BusinessPartner".

Поиск по всему интернету для поиска решения, дайте мне знать, если кто-нибудь есть какие-либо подсказки.Я указал, где именно я получаю исключение в следующем фрагменте.

Java-версия: 1.8
Spring Boot Version: 1.5.10.RELEASE

Заказ сущности:

@Entity
@Table(name = Order.TABLE_NAME)
public class Order extends Model implements Serializable {
    @Enumerated(EnumType.STRING)
    @Column(name = DOCUMENT_TYPE)
    private DocumentType documentType;

    @Column(name = DOCUMENT_NUMBER, updatable = false)
    private String documentNumber;

    @Column(name = ORDER_DESCRIPTION)
    @NotEmpty
    private String orderDescription;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = COL_OTHER_PARTY_ID, nullable = false)
    private BusinessPartner otherParty;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = COL_AUTHORITY_BUSINESS_PARTNER_ID, nullable = false)
    private BusinessPartner authority;
}

BusinessPartner сущности:

@Entity
@Table(name = BusinessPartner.ENTITY_NAME)
public class BusinessPartner extends Model {
    @Column(name = NAME)
    private String name;

    @Column(name = EMAIL)
    private String email;

    // Getters and Setters omitted for simplicity
}

Родительская сущность:

@MappedSuperclass
public class Model {
    public static final String ID = "id";
    public static final String CREATED_AT = "createdAt";
    public static final String UPDATED_AT = "updatedAt";

    @Id
    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name = "uuid", strategy = "com.emisha.database.Generators.IDGenerator")
    @Column(name = ID)
    private String id;

    @Version
    private Long version;

    @Column(name = CREATED_AT)
    private Date createdAt;

    @Column(name = UPDATED_AT)
    private Date updatedAt;

    public Model() {
        // Empty Constructor
    }

    /* DEFINED METHODS */
    @PrePersist
    protected void onCreate() {
        updatedAt = createdAt = new Date();
    }

    @PreUpdate
    protected void onUpdates() {
        updatedAt = new Date();
    }

    // GETTERS & SETTERS
}

Метод контроллера, который заполняет businessPartners:

@Controller
@Secured(SecurityUtil.MANAGE_PURCHASEORDER)
@SessionAttributes("order")
@RequestMapping("Orders")
public class OrderController extends EmishaAdminBaseController {

//.........
    @RequestMapping(value = "/{documentType}/form/{id}", method = RequestMethod.GET)
    public String getOrder(@PathVariable("documentType") String documentType, @PathVariable("id") String id, Model model, HttpServletRequest request, RedirectAttributes redirectAttributes) {
        String view = "PurchaseOrder/form";

        if (documentType.equalsIgnoreCase("SalesOrder")) {
            view = "SalesOrder/form";
        }

        User user = Objects.requireNonNull(getCurrentUser()).getUser();
        // Mapped Product Data
        Order order;

        // Default Form control data
        String action = request.getContextPath() + "/Orders/" + documentType + "/form/" + id;
        String mode = "EDIT_ORDER";

        logger.debug("Default mode set to: " + mode + "\n" + "Default action set to: " + action);

        if (documentType.equalsIgnoreCase("CreateSalesOrder")) {
            action = request.getContextPath() + "/Orders/SalesOrder/form/" + id;
            view = "SalesOrder/form";

            if (id != null && !id.isEmpty()) {
                Order purchaseOrder = orderService.getOrder(id);
                order = OrderHelper.convertToSalesOrder(purchaseOrder);
            } else {
                redirectAttributes.addFlashAttribute("error", "Invalid Purchase Order.");
                return "redirect:/Sales/Quotations";
            }
        } else {
            if (id.equals("new")) {
                mode = "CREATE_ORDER";

                // Create new instance for creating new Procurement Requisition.
                order = new Order();

                if (documentType.toLowerCase().equals("PurchaseOrder".toLowerCase())) {
                    // Set default statuses for new Procurement Requisition
                    order.setStatus(Status.DRAFT);
                    order.setPublicationType(PublicationType.RESTRICTED);

                    // Set document type to Purchase Requirement.
                    order.setDocumentType(DocumentType.PURCHASE_ORDER);

                    // Set initial processing status to PR Created.
                    order.setProcessingStatus(ProcessingStatus.PO_CREATED);
                } else if (documentType.toLowerCase().equals("SalesOrder".toLowerCase())) {
                    // Set default statuses for new RFQ ProcurementRequisition
                    order.setStatus(Status.DRAFT);
                    order.setPublicationType(PublicationType.RESTRICTED);

                    // Set document type to Request for Quotation.
                    order.setDocumentType(DocumentType.SALES_ORDER);

                    // Set initial processing status to REF Created.
                    order.setProcessingStatus(ProcessingStatus.SO_CREATED);
                }

                logger.debug("Mode set to: " + mode + "\n" + "Action set to: " + action);
            } else {
                order = orderService.getOrder(id);
            }
        }


        addAllDropDowns(model, user);

        // Add business data to model
        model.addAttribute("order", order);

        // Add form control data to model
        model.addAttribute("action", action);
        model.addAttribute("mode", mode);

        return view;
    }

    //.........
    private void addAllDropDowns(Model model, User user) {
        // Add dropdown data to model
        /* Products drop down */
        List<Product> products = new ArrayList<>();
        products = productService.getProducts(user.getBusinessPartner());
        model.addAttribute("products", products);

        /* Unit of Measurements drop down */
        List<UnitOfMeasurement> unitOfMeasurements = new ArrayList<>();
        unitOfMeasurements = unitOfMeasurementService.getAllUnitOfMeasurements();
        model.addAttribute("unitOfMeasurements", unitOfMeasurements);

        /* Users drop down */
        List<User> users = new ArrayList<>();
        users = userService.getUsersWhere(user.getBusinessPartner());
        model.addAttribute("users", users);

        /* Vendors drop down */
        List<BusinessPartner> vendors = new ArrayList<>();
        vendors = businessPartnerService.getVendors(user.getBusinessPartner());
        model.addAttribute("vendors", vendors);
    }
}

Thyemeleaf Выпадающий список в моем файле view.html:

<label>Customer</label>
<select th:if="*{order?.quotation ==null}" class="form-control"
        th:field="*{otherParty}"
        data-placeholder="Select an option" data-allow-clear="true"
        tabindex="-1"
        style="width: 250px; background-color: #d2e1f3;">
        <option value="">Select</option>
        <option th:each="vendor,istat : ${vendors}"
                th:value="${vendor?.id}" //<---- java.lang.NumberFormatException: For input string: "BPID_04a3e35b-12b3-447f-a982-338739e537f1"
                th:text="${vendor?.name}">
                Manufacturer
        </option>
</select>

Вот трассировка стека:

java.lang.NumberFormatException: For input string: "BPID_04a3e35b-12b3-447f-a982-338739e537f1"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_152]
at java.lang.Integer.parseInt(Integer.java:580) ~[na:1.8.0_152]
at java.lang.Integer.valueOf(Integer.java:766) ~[na:1.8.0_152]
at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:208) ~[spring-core-4.3.14.RELEASE.jar:4.3.14.RELEASE]...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...