级联保存的奇怪问题

同步: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 ;

这样子就成功了。

你可能感兴趣的:(Hibernate,Blog)