我有 2 个实体 Order 和 Item,它们关联为 1:N,Order 是父表,item 是子表。当我删除订单时,我也希望删除相应的项目。但它没有发生,而是将子表中的 OrderId 设置为“null”。这是在 Item 表中的数据库中创建孤立行。
这是我的配置:我使用 Spring、Hibernate 作为 JPAVendor 和 mysql 数据库
@Entity
@Table(name="T_ORDER")
public class Order {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String customer;
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="ORDER_ID")
private Collection items = new LinkedHashSet();
}
物品实体
@Entity
public class Item {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@ManyToOne
private Order order;
private String product;
private double price;
private int quantity;
我只有 2JPA 属性集
key="hibernate.show_sql"=true
key="hibernate.hbm2ddl.auto"
无法弄清楚还需要做什么来解决这个问题。