Jaz*_*azB 3 hibernate jpa cascade
我使用spring,JPA和Hibernate.
我有以下实体:
@Entity
@Table(name = "Supplier")
public class Supplier {
@Id
@Column(name = "Supplier_ID", nullable = false)
private Integer supplierId;
...
}
Run Code Online (Sandbox Code Playgroud)
和,
@Entity
@Table(name = "Product")
public class Product {
@Id
private Integer productId;
@ManyToOne(cascade = CascadeType.ALL)
@OnDelete(action = OnDeleteAction.CASCADE)
@JoinColumn(name = "Supplier_ID")
private Supplier supplier;
...
}
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是,给定的架构
谢谢.
由于OnDelete注释,在删除供应商时将删除该产品.
仅当Hibernate生成模式时才使用OnDelete注释.它配置数据库中的外键,以便在删除引用的行时,也删除包含外键的行.
见http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#entity-hibspec-singleassoc
但是,当您删除产品时,Hibernate也会删除供应商(这可能不是您想要的),因为在关联上设置了CascadeType.ALL.您应该删除此属性:没有理由在删除其中一个产品时删除供应商.
| 归档时间: |
|
| 查看次数: |
10118 次 |
| 最近记录: |