我正在创建一个电子商务购物平台。
我有以下3个实体类:
>
产品库存
订单
订购的产品
@实体@Getter@Setter@noargsconstuctor@allargsconstuctor公共类ProductInventory{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long productId;
private String name;
private Double price;
private Long availableQty;
private String description;
@Enumerated(EnumType.STRING)
private Category category;
}
@Entity@Getter@Setter@NoArgsConstructor@AllArgsConstructor公共类订单{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long orderId;
private String userEmail;
@Temporal(TemporalType.DATE)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="dd/MM/yyyy")
private Date orderDate;
@Temporal(TemporalType.DATE)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="dd/MM/yyyy")
private Date deliveryDate;
private double bill;
@JsonIgnore
@OneToMany(cascade = CascadeType.ALL , mappedBy = "orders")
private List<OrderedProduct> orderedProductList = new ArrayList<>();
}
@实体@Setter@Getter@noargsconstuctor@allargsconstuctor@jsonidentialinfo(property=“id”,generator=ObjectIdGenerators.PropertyGenerator.class)公共类OrderedProduct{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private Long orderedProductId;
private Long quantityOrdered;
@ManyToOne(optional = false , fetch = FetchType.LAZY)
@JoinColumn(name = "ORDEREDPRODUCT_ID")
private Orders orders;
@ManyToOne(optional = false , fetch = FetchType.LAZY)
@JoinColumn(name = "product_product_id")
private ProductInventory product;
}
我有以下控制器来接受POST请求。
@RestController
@RequestMapping("/orders")
public class OrderController {
@Autowired
private OrderService orderService;
@PostMapping(value = "/placeOrder")
public ResponseEntity<String> createUserRequest(@RequestBody Orders newOrder) throws IOException {
System.out.println("NewOrder ID = "+ newOrder.getOrderId());
System.out.println("NewOrder UserEmail = "+ newOrder.getUserEmail());
System.out.println("NewOrder ORDERDATE = "+ newOrder.getOrderDate());
System.out.println("NewOrder DELIVERYDATE = "+ newOrder.getDeliveryDate());
System.out.println("NewOrder BILL = "+ newOrder.getBill());
System.out.println("NewOrder List = "+ newOrder.getOrderedProductList());
return orderService.createOrder(newOrder);
}
}
当我发送以下POST请求时:
{
"userEmail": "new order",
"orderDate": "09/03/2022",
"deliveryDate": "09/04/2022",
"bill": 80,
"orderedProductList": [
{
"orderedProductId": 1,
"quantityOrdered": 3
}
]
}
我在控制台中得到以下输出:
NewOrder ID = null
NewOrder UserEmail = new order
NewOrder ORDERDATE = Wed Mar 09 05:30:00 IST 2022
NewOrder DELIVERYDATE = Sat Apr 09 05:30:00 IST 2022
NewOrder BILL = 80.0
NewOrder List = [] --------------------I'm more concerned about this list being empty inside the controller
Inside OrderService
Bill : 80.0
The number of ordered products are as follows : 0
当给定id的产品出现在表中或不在表中时,我尝试进行POST请求。它在控制台中返回相同结果的时间。
我还试图通过从JSON中删除“quantityOrdered”:3来完成这篇文章,但我还是得到了同样的结果。数据保存在MySqlDB中,但每次列表都是空的。
我无法找出我在哪里犯的错误。
有人能帮忙吗?
提前感谢。
该字段上有@JsonIgnore,因此它不会被反序列化。
请参阅此。
问题内容: 我在用JavaScript抓取API挣扎。当我尝试通过获取将某些内容发布到服务器时,请求正文为空数组。但是,当我使用Postman时,它可以工作…这是我在NodeJS中的服务器代码: 这是我的客户: 问题是在服务器端,req.body为空。有人能帮我吗?谢谢 ! 问题答案: 问题是 从文档中 … 防止该方法成为HEAD,GET或POST之外的任何其他内容, 并且 阻止 标头成为 简单标
我正在替换Spring Boot REST控制器中对POST请求输入的手动验证。JSR-303 Spring Bean验证用于验证请求主体中的实例变量,这是预期的工作。什么是建议的方法来验证请求主体中的对象不是null? 我试过: > 用@NotNull注释整个类 我正在替换: 与Bean验证等效: 我尝试通过以下方式对控制器方法进行单元测试: 我希望MethodArgumentNotValidE
有一个spring mvc控制器资源来接收文件并将其存储在本地存储器中。请求是一个多部分(“内容类型:多部分/表单数据”),由几个部分组成。第一部分是文件的JSON/XML描述。第二个和以下是文件。但这些部分也可能是多部分的(“内容类型:多部分/混合”)。一部分中的文件很少。多部分中的多部分。 我必须根据请求结构将它们分组存储。身体txt和图片。gif来自一个组中的第二个表单数据部分,文件来自另一
问题内容: 我有一个Sinatra应用程序,并且在我的大多数控制器中,json都会传入并在params对象中自动获取。但是,除非我用before方法来拉取request.body参数,否则我将获得一个根本不获取参数的后期操作.body参数将它们解析为JSON并将它们合并到params哈希中。 这是控制器以及filter方法: 我看到的输出基本上是,控制器操作中的参数实际上正确地位于其中。但是,如果
问题内容: Spring MVC-如何在Spring控制器中获取地图中的所有请求参数?范例网址: 我不知道attr1,att2和attr4的名称。 我希望能够做类似的事情(或类似的,不在乎,只要我可以访问Map的请求参数名-> value: 如何使用Spring MVC做到这一点? 问题答案: 尽管其他答案是正确的,但肯定不是直接使用HttpServletRequest对象的“spring方式”。