Попробую проверить вложенность Object Spring при загрузке - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь добавить проверку дочерней сущности, т.е. OrderItem. Для этого я добавил аннотацию @Valid в Order.ListOfOrderItems, но она не работает.

Ниже приведен фрагмент кода 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,
        }
    ]
}

Как проверить дочерний объект?

1 Ответ

0 голосов
/ 09 апреля 2019

В вашем коде вы аннотировали примитивное поле, наберите int, с @NotNull.Примитивное поле никогда не может быть null, и, таким образом, @NotNull никогда не сработает, так как значение по умолчанию равно 0.

Либо измените int на Integer, который является оберткой объекта, котораяможет быть null или использовать что-то вроде @Min для проверки определенного значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...