Hibernate级联操作 注解

这篇博客详细介绍了Hibernate的级联操作,包括save-update、delete、all-delete-orphan和all等不同类型的级联行为,并通过代码示例展示了如何在实际应用中使用这些级联操作。特别强调了在删除操作时的注意事项,以及级联删除不生效的常见原因和解决办法。还提到了JPA、Hibernate和EJB3.0之间的关系。
摘要由CSDN通过智能技术生成


EJB3 支持的操作类型

/**
 * Cascade types (can override default EJB3 cascades
 */
public enum CascadeType {
	ALL,
	PERSIST,
	MERGE,
	REMOVE,
	REFRESH,
	DELETE,
	SAVE_UPDATE,
	REPLICATE,
	/** @deprecated use @OneToOne(orphanRemoval=true) or @OneToMany(orphanRemoval=true) */
	@Deprecated
	DELETE_ORPHAN,
	LOCK,
	/** @deprecated use javax.persistence.CascadeType.DETACH */
	@Deprecated
	EVICT,
	DETACH
}

级联更新保存,在Many一端加入如下注解。   如果父类(insert)是自动增长的,请设置 @GeneratedValue

 @JoinColumn(name = "conf_file_id", referencedColumnName = "conf_file_id",insertable = true,updatable = true)
    @Cascade(value = {org.hibernate.annotations.CascadeType.SAVE_UPDATE})

级联删除

  @OneToMany(mappedBy = "projectByProPlanId",orphanRemoval=true)
    @Cascade(value = {org.hibernate.annotations.CascadeType.SAVE_UPDATE})

save-update: 级联保存(load以后如果子对象发生了更新,也会级联更新). 但它不会级联删除
delete: 级联删除, 但不具备级联保存和更新
all-delete-orphan: 在解除父子关系时,自动删除不属于父对象的子对象, 也支持级联删除和级联保存更新.
all: 级联删除, 级联更新,但解除父子关系时不会自动删除子对象. 

delete-orphan:删除所有和当前对象解除关联关系的对象 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值