hibernate 多对一操作时 删除子表时,总是删除主表或更新主表。很讨厌,看来hibernate 得会玩才能玩得好呀。
http://wuxj888.iteye.com/blog/140532
3 楼
yongganzhe 2007-11-27
引用
解决方法:利用hibernate的自定义的级联删除,不要使用jpa的
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
.....................//
@OneToMany(mappedBy="enterprise")
@Cascade(value={CascadeType.SAVE_UPDATE})
................................//
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
.....................//
@OneToMany(mappedBy="enterprise")
@Cascade(value={CascadeType.SAVE_UPDATE})
................................//
本文解决了Hibernate在配置多对一时遇到的问题,即在删除子表记录时意外更新或删除了主表。通过调整注解配置,实现了正确的级联操作。
483

被折叠的 条评论
为什么被折叠?




在Person表关系定义如下:
@ManyToOne(cascade = { CascadeType.PERSIST,CascadeType.MERGE})
@JoinColumn(name = "HOSPITAL_ID")
改为:
@ManyToOne()
@Cascade(value={CascadeType.SAVE_UPDATE})
@JoinColumn(name = "HOSPITAL_ID")
并把
import javax.persistence.CascadeType;
import javax.persistence.Cascade;
改成
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
谢谢!