[英]Stuck validating nested Object Spring boot
我正在尝试在子实体(即OrderItem)上添加验证。 为此,我在Order.ListOfOrderItems上添加了@Valid批注,但是它不起作用。
以下是Order,OrderItems和OrderController的代码段。
Order.java
@Entity
@Getter @Setter
@Table(name = "orders")
public class Order extends BaseEntity {
protected @NotBlank String customerId;
@Valid @NotNull
@OneToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY, mappedBy = "order")
private List<OrderItems> orderItems = new ArrayList<OrderItems>();
}
OrderItems.java
@Entity
@Getter @Setter
public class OrderItems extends BaseEntity {
protected @NotNull int productId;
protected @NotNull int quantity;
@Getter(AccessLevel.NONE)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "order_id", nullable = false)
private Order order;
}
OrderController.java
@PostMapping("/order/")
public Order saveOrder(@Valid @RequestBody Order order) {
return orderService.save(order);
}
邮政订单/
{
"customerId": "asdhajhdjssga",
"orderItems": [
{
"productId": 1,
"quantity": 2,
},
{
"productId": 2,
"quantity": 2,
}
]
}
如何验证子对象?
在您的代码中,您已经用@NotNull
注释了一个原始字段,键入int
。 基本字段永远不能为null
,因此@NotNull
将永远不会插入,因为默认值为0。
可以将int
更改为Integer
,这是对象包装器,可以为null
或使用类似@Min
的值来验证某个值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.