java - 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);
}
}
问题已解决。我没有给出日期的值,它不应该为空。这就是我无法写入数据库的原因。