级联保存的奇怪问题
同步:http://www.java1995.cn/blog/item/136
上一文cascadetype讲解了使用CascadeType的用处。
在一对多的时候,使用CascadeType.PERSIST 的时候,保存one方的时候,不会去保存many方。
设成CascadeType.ALL就可以
解决办法:
在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;
这样子就成功了。