繁体   English   中英

Hibernate 删除数据库中的条目

[英]Hibernate deleting entries in database

我有 spring 启动应用程序并使用 JPA。 我尝试使用人员购物车中的产品列表保存订单,它正在工作,但是当我这样做时,Hibernate 从表 cart_product 删除条目。

我有这个实体:

@Entity
@Table(name = "person")
public class Person  implements Authority {

    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    @Column(name = "email")
    @Email
    @NotEmpty
    private String email;
    @Column(name = "name")
    @NotEmpty
    @Size(max = 30, min = 3)
    private String name;
    @Column(name = "lastname")
    @NotEmpty
    @Size(max = 30, min = 3, message = "Короткая фамилия")
    private String lastName;
    @Column(name = "patronymic")
    private String patronymic;
    @Column(name = "address")
    @Size(min = 10, max = 200)
    private String address;
    @Column(name = "password")
    private String password;
    @Column(name = "role")
    private String role;
    @OneToMany(mappedBy = "person", fetch = FetchType.EAGER)
    @Cascade(org.hibernate.annotations.CascadeType.DELETE)
    private List<Order> ordersList;


    @OneToOne(mappedBy = "person")
    @Cascade(org.hibernate.annotations.CascadeType.DELETE)
    private Bill bill;

    @OneToOne(mappedBy = "person")
    @Cascade(org.hibernate.annotations.CascadeType.DELETE)
    private Cart cart;

@Entity
@Table(name = "product")
public class Product {

    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;


    @NotNull
    private int article;

    @NotEmpty
    @Size(min = 3, max = 30)
    private String name;

    @NotEmpty
    @Size(min = 10, max = 1000)
    private String description;

    @NotNull
    @Min(1)
    private double price;

    @ManyToOne
    @JoinColumn(name = "market_id", referencedColumnName = "id")
    private Market market;


    @ManyToMany(mappedBy = "products")
    private List<Cart> carts;

    @ManyToMany(mappedBy = "orderProducts")
    private List<Order> orders;

@Entity
@Table(name = "Cart")
public class Cart {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "cart_id")
    private int id;

    @OneToOne
    @JoinColumn(name = "person_id", referencedColumnName = "id")
    private Person person;


    @ManyToMany
    @JoinTable(name = "cart_product",
            joinColumns = @JoinColumn(name = "cart_id"),
            inverseJoinColumns = @JoinColumn(name = "product_id"))
    private List<Product> products;

当我尝试使用 Person's Cart 中的 productsList 保存我的 Order 实体时,Hibernate 从 cart_product 表中删除条目。

Order order = new Order();
List<Product> productList = person.getCart().getProducts();
order.setOrderProducts(productList);
order.setPerson(person);
order.setDate(new Date());
orderRepo.save(order);


Hibernate: insert into orders (created_at, person_id) values (?, ?)
Hibernate: delete from cart_product where cart_id=?
Hibernate: insert into orders_product (order_id, product_id) values (?, ?)

有谁能够帮我?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM