JPA级联不更新子表

时间:2018-04-13 05:25:13

标签: hibernate spring-boot jpa

我有两个外键关系表。现在我想将数据保存到父表时,它会自动将父ID更新为子表。但我无法将其保存到子表中。 在我的代码示例下面

@CrossOrigin
@Transactional
@RequestMapping(value = "/m/auth/merchant/order", method = RequestMethod.POST)
public MerchantOrder setShippingAddress(@RequestBody MerchantOrder merchantOrder) throws HLRestException {
    if(merchantOrder != null) {
        MerchantOrder order = new MerchantOrder();
        Product product = new Product();
        product.setMerchantOrder(order);
        List<Product> products = order.getProducts();
        products.add(product);
        order.setProducts(products);
        order = merchantOrderRepo.save(order);
        return merchantOrder;
    }
    else {
        throw new HLRestException("Order shipping failed");
    }
}


========MerchantOrder Class=====
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
List<Product> products;

========Product Class=======
@ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.LAZY)
MerchantOrder merchantOrder;

1 个答案:

答案 0 :(得分:0)

纠正你的一对多关系:

//MerchantOrder Class
@OneToMany(mappedBy = "merchantOrder", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
List<Product> products;

//Product Class
@ManyToOne
MerchantOrder merchantOrder;