首页 > 解决方案 > NetBeans 电子商务教程提交订单错误

问题描述

我正在尝试学习javaee web开发,我从[NetBeans电子商务教程-集成事务业务逻辑][1]开始,当我单击提交订单在数据库中输入数据时出现问题,orderID永远不会更新,因此我失败了。

我确实按照解释使用了 em.flush() :

要了解 order.getId 方法返回 null 的原因,请考虑代码实际试图完成的任务。getId 方法尝试获取当前正在创建的订单的 ID。由于 ID 是一个自增的主键,因此数据库只有在添加记录时才会自动生成值。克服这个问题的一种方法是手动将持久性上下文与数据库同步。这可以使用 EntityManager 的 flush 方法来完成。

但我仍然将 orderid 设为 0。

private void addOrderedItems(CustomerOrder order, ShoppingCart cart) {

    em.flush();

    List<ShoppingCartItem> items = cart.getItems();

    // iterate through shopping cart and create OrderedProducts
    for (ShoppingCartItem scItem : items) {

        int productId = scItem.getProduct().getId();

        // set up primary key object
        OrderedProductPK orderedProductPK = new OrderedProductPK();
        orderedProductPK.setCustomerOrderId(order.getId());
        orderedProductPK.setProductId(productId);

        // create ordered item using PK object
        OrderedProduct orderedItem = new OrderedProduct(orderedProductPK);

        // set quantity
        orderedItem.setQuantity(scItem.getQuantity());

        em.persist(orderedItem);
    }
}

问题已解决。我没有给出日期的值,它不应该为空。这就是我无法写入数据库的原因。

标签: javajpajakarta-ee

解决方案


推荐阅读